home *** CD-ROM | disk | FTP | other *** search
/ CPM Magazine / CPM MAG #01.DSK / BIOS.txt < prev    next >
Encoding:
Text File  |  1980-01-01  |  84.0 KB  |  2,706 lines

  1. "APPLE CP/M BIOS"       MACRO-80 3.4    01-Dec-80       PAGE    1
  2.  
  3.  
  4.  
  5.  
  6.  
  7.                                         TITLE "APPLE CP/M BIOS"
  8.  
  9.                                 ;
  10.  
  11.                                 ;**********************************************************
  12.  
  13.                                 ;
  14.  
  15.                                 ;       Apple CP/M BIOS Listing
  16.  
  17.                                 ;       =======================
  18.  
  19.                                 ;
  20.  
  21.                                 ;       Quellencode rekonstruiert von D. Stampe
  22.  
  23.                                 ;       A.U.G.E.  M 334
  24.  
  25.                                 ;       f}r A.U.G.E. Mitglieder zur
  26.  
  27.                                 ;       Erg{nzung ihrer Dokumentation
  28.  
  29.                                 ;
  30.  
  31.                                 ;       SoftCard und Originalcode -
  32.  
  33.                                 ;         Copyright by Microsoft
  34.  
  35.                                 ;
  36.  
  37.                                 ;       56 K - System ( mit Language Card )
  38.  
  39.                                 ;       mit Drucker in Slot 1, Com. Card in Slot 2,
  40.  
  41.                                 ;       80 Zeichenkarte in Slot 3, Z80 in Slot 4
  42.  
  43.                                 ;
  44.  
  45.                                 ;       Stand 30.10.83  
  46.  
  47.                                 ;
  48.  
  49.                                 ;       Benutzte Quellen:
  50.  
  51.                                 ;       Digital Research: CP/M 2.0 Alteration Guide
  52.  
  53.                                 ;       ( BIOS Entry Points, Disk Parameter Tables,
  54.  
  55.                                 ;         Sector blocking and deblocking )
  56.  
  57.                                 ;       Microsoft: Softcard Dokumentation
  58.  
  59.                                 ;
  60.  
  61.                                 ;       Nobody is Perfect.
  62.  
  63.                                 ;       Korrekturen und Erg{nzungen erw}nscht an M 334.
  64.  
  65.                                 ;
  66.  
  67.                                 ;**********************************************************
  68.  
  69.                                         PAGE
  70.  
  71. "APPLE CP/M BIOS"       MACRO-80 3.4    01-Dec-80       PAGE    1-1
  72.  
  73.  
  74.  
  75.  
  76.  
  77.                                 
  78.  
  79.                                         .Z80             
  80.  
  81.                                 ;
  82.  
  83.   0038                          MSIZE   EQU     56            ;Systemgr|~e in K (56 K/ 44 K)
  84.  
  85.   9000                          BIAS    EQU     (MSIZE-20)*1024
  86.  
  87.   C400                          CBASE   EQU     BIAS+3400H    ;Start CCP
  88.  
  89.   DA00                          BIOS    EQU     CBASE+1600H   ;Start BIOS
  90.  
  91.                                 ;
  92.  
  93.   0000'                                 ASEG     
  94.  
  95.                                         ORG     BIOS         
  96.  
  97.                                 ;
  98.  
  99.                                  
  100.  
  101.   0000                          BOOT    EQU     00000H        ;Warmstart Einsprung 
  102.  
  103.   0001                          BOOTST  EQU     00001H        ; " 
  104.  
  105.   0003                          IOBYTE  EQU     00003H        ;Input/Output Flag (f]r PIP, STAT ) 
  106.  
  107.   0004                          CDISK   EQU     00004H        ;Current Drive Nummer 
  108.  
  109.   0005                          BDOS    EQU     00005H        ;BDOS Einsprung 
  110.  
  111.   0006                          BDOSST  EQU     00006H        ; "
  112.  
  113.   03C0                          Z80ST   EQU     003C0H        ; 6502 Adresse Z80 Start
  114.  
  115.                                 ;         
  116.  
  117.   C407                          BUFCNT  EQU     CBASE+07H     ;CCP Eingabebuffer Z{hler 
  118.  
  119.   C8B2                          CCPDIR  EQU     CBASE+04B2H   ;CCP Patch Directory Spaltenzahl 
  120.  
  121.   CC06                          BDST    EQU     CBASE+0806H   ;BDOS Start-Einsprung
  122.  
  123.   CC0D                          BDERR   EQU     CBASE+080DH   ;BDOS Fehler-Einsprungadresse
  124.  
  125.                                 ;
  126.  
  127.                                 ;       Apple I/O - Adressen    
  128.  
  129.                                 ;
  130.  
  131.   E000                          APPKBD  EQU     0E000H        ;Apple Keyboard 
  132.  
  133.   E010                          APPKST  EQU     0E010H        ;Keyboard Strobe 
  134.  
  135.   E051                          TXTSET  EQU     0E051H        ;Schalter Textseite 
  136.  
  137.   E400                          Z80CRD  EQU     0E400H        ;Z80-Karte in Slot 4 
  138.  
  139.   EFFF                          CLRROM  EQU     0EFFFH        ;Abschalten Expansion-Roms
  140.  
  141.                                 ;
  142.  
  143.                                 ;       6502 ]bergabe-speicher ( 6502 Zero Page )
  144.  
  145.                                 ;     
  146.  
  147.   F024                          CH      EQU     0F024H        ;Cursor Horizontal 
  148.  
  149.   F028                          BASL    EQU     0F028H        ;Basis-Adresse Schirmspeicher 
  150.  
  151.   F032                          INVFLG  EQU     0F032H        ;Flag normal=0FFH/invers=03FH 
  152.  
  153.   F045                          A$ACC   EQU     0F045H        ;6502 Akku-Zwischenspeicher
  154.  
  155.   F046                          A$XREG  EQU     0F046H        ;6502 X-Register 
  156.  
  157.   F047                          A$YREG  EQU     0F047H        ;6502 Y-Register
  158.  
  159.                                 ; 
  160.  
  161.   F3D0                          A$VEC   EQU     0F3D0H        ;Vektor 6502 Routinen 
  162.  
  163.   F3E0                          PHTS    EQU     0F3E0H        ;Track 
  164.  
  165.   F3E4                          DRV12   EQU     0F3E4H        ;Drive 1 = 01H  oder Drive 2 Flag 
  166.  
  167.   F3E6                          DSKSLT  EQU     0F3E6H        ;Slot Disk, Slot #6 =060H
  168.  
  169.   F3EA                          DERR    EQU     0F3EAH        ;Fehler-Code Disk-Routine 
  170.  
  171.   F3EB                          RDWR    EQU     0F3EBH        ;Read=01H/Write=02H 
  172.  
  173.   F678                          BYTE    EQU     0F678H        ;Zwischenspeicher I/O-Card
  174.  
  175.   F6F8                          SLOT    EQU     0F6F8H        ;Slot I/O-Card 
  176.  
  177.                                         PAGE
  178.  
  179. "APPLE CP/M BIOS"       MACRO-80 3.4    01-Dec-80       PAGE    1-2
  180.  
  181.  
  182.  
  183.  
  184.  
  185.                                 
  186.  
  187.                                 ;       BIOS Entry Tabelle
  188.  
  189.                                 ;       ================== 
  190.  
  191.                                 ;
  192.  
  193.                                 ;    Kaltstart
  194.  
  195.   DA00    C9                    START:  RET                    ;JP STRTUP initial                    
  196.  
  197.   DA01    DEA8                          DEFW    STRTUP         ; "
  198.  
  199.                                 ;    Warmstart
  200.  
  201.   DA03    C3 DACC               WBOOTE: JP      WBOOT          
  202.  
  203.                                 ;    Console Status
  204.  
  205.   DA06    C3 DB08                       JP      CONST          
  206.  
  207.                                 ;    Console Input
  208.  
  209.   DA09    C3 DB12                       JP      CONIN          
  210.  
  211.                                 ;    Console Output
  212.  
  213.   DA0C    C3 DB43                       JP      CONOUT          
  214.  
  215.                                 ;    List Drucker
  216.  
  217.   DA0F    C3 DB66                       JP      LIST          
  218.  
  219.                                 ;    Punch Stanzer
  220.  
  221.   DA12    C3 DB75                       JP      PUNCH          
  222.  
  223.                                 ;    Reader Leser
  224.  
  225.   DA15    C3 DB87                       JP      READER          
  226.  
  227.                                 ;    Laufwerk Spur 0
  228.  
  229.   DA18    C3 DD4B                       JP      HOME          
  230.  
  231.                                 ;    Auswahl Disk-Laufwerk
  232.  
  233.   DA1B    C3 DD6D                       JP      SELDSK          
  234.  
  235.                                 ;    Auswahl Track
  236.  
  237.   DA1E    C3 DD56                       JP      SETTRK          
  238.  
  239.                                 ;    Auswahl Sektor
  240.  
  241.   DA21    C3 DD89                       JP      SETSEC          
  242.  
  243.                                 ;    Buffer f}r Disk-Routinen festlegen
  244.  
  245.   DA24    C3 DD8E                       JP      SETDMA          
  246.  
  247.                                 ;    Read Lesen Disk
  248.  
  249.   DA27    C3 DD93                       JP      READ          
  250.  
  251.                                 ;    Write Schreiben Disk
  252.  
  253.   DA2A    C3 DDA3                       JP      WRITE          
  254.  
  255.                                 ;    LISTST List Status
  256.  
  257.   DA2D    AF                            XOR     A             ;Akku = 0 immer          
  258.  
  259.   DA2E    C9                            RET                    
  260.  
  261.   DA2F    00                            NOP                    
  262.  
  263.                                 ;    SECTRAN Sektor umsetzen
  264.  
  265.   DA30    60                            LD      H,B           ;hier keine Umsetzung 
  266.  
  267.   DA31    69                            LD      L,C            
  268.  
  269.   DA32    C9                            RET                    
  270.  
  271.                                 ;
  272.  
  273.                                 ;       Disk Parameter Header f}r 6 Laufwerke A: ... F:
  274.  
  275.                                 ;
  276.  
  277.   DA33    0000 0000             DPE0:   DEFW    0,0,0,0,DIRBUF,DPB,CSV0,ALV0          
  278.  
  279.   DA37    0000 0000             
  280.  
  281.   DA3B    DEBA DA93             
  282.  
  283.   DA3F    DF9A DF3A             
  284.  
  285.   DA43    0000 0000                     DEFW    0,0,0,0,DIRBUF,DPB,CSV1,ALV1          
  286.  
  287.   DA47    0000 0000             
  288.  
  289.   DA4B    DEBA DA93             
  290.  
  291.   DA4F    DFA6 DF4A             
  292.  
  293.   DA53    0000 0000                     DEFW    0,0,0,0,DIRBUF,DPB,CSV2,ALV2          
  294.  
  295. "APPLE CP/M BIOS"       MACRO-80 3.4    01-Dec-80       PAGE    1-3
  296.  
  297.  
  298.  
  299.  
  300.  
  301.   DA57    0000 0000             
  302.  
  303.   DA5B    DEBA DA93             
  304.  
  305.   DA5F    DFB2 DF5A             
  306.  
  307.   DA63    0000 0000                     DEFW    0,0,0,0,DIRBUF,DPB,CSV3,ALV3          
  308.  
  309.   DA67    0000 0000             
  310.  
  311.   DA6B    DEBA DA93             
  312.  
  313.   DA6F    DFBE DF6A             
  314.  
  315.   DA73    0000 0000                     DEFW    0,0,0,0,DIRBUF,DPB,CSV4,ALV4          
  316.  
  317.   DA77    0000 0000             
  318.  
  319.   DA7B    DEBA DA93             
  320.  
  321.   DA7F    DFCA DF7A             
  322.  
  323.   DA83    0000 0000                     DEFW    0,0,0,0,DIRBUF,DPB,CSV5,ALV5          
  324.  
  325.   DA87    0000 0000             
  326.  
  327.   DA8B    DEBA DA93             
  328.  
  329.   DA8F    DFD6 DF8A             
  330.  
  331.                                 ;
  332.  
  333.                                 ;       Disk Parameter Block
  334.  
  335.                                 ;
  336.  
  337.   DA93    0020                  DPB:    DEFW    0020H         ;32 Sektoren/Track        
  338.  
  339.   DA95    03                            DEFB    003H          ;
  340.  
  341.   DA96    07                            DEFB    007H          ;
  342.  
  343.   DA97    00                            DEFB    000H          ;
  344.  
  345.   DA98    007F                          DEFW    007FH         ;total 128 * 1K-Bl|cke
  346.  
  347.   DA9A    002F                          DEFW    002FH         ;total 48 Directory Entries
  348.  
  349.   DA9C    C0                            DEFB    0C0H          ;2 Bl|cke f}r Directory
  350.  
  351.   DA9D    00                            DEFB    000H          ; "
  352.  
  353.   DA9E    000C                          DEFW    000CH         ;Gr|sse Dir Check-Vektor
  354.  
  355.   DAA0    0003                          DEFW    0003H         ;reservierte Tracks f}r System
  356.  
  357.                                 ;
  358.  
  359.                                 ;       Initialisierung der I/O-Karten
  360.  
  361.                                 ;          
  362.  
  363.   DAA2    11 0007               INICRD: LD      DE,00007H     ;Slot 7 anfangend
  364.  
  365.   DAA5    21 F3B8               WEITER: LD      HL,SLTTAB-1   ;Basis Slot-Tabelle
  366.  
  367.   DAA8    19                            ADD     HL,DE          
  368.  
  369.   DAA9    7E                            LD      A,(HL)         
  370.  
  371.   DAAA    D6 03                         SUB     003H          ;3 = Com. Card
  372.  
  373.   DAAC    20 07                         JR      NZ,NOCOM       
  374.  
  375.   DAAE    CD DD60                       CALL    SLSTAT          
  376.  
  377.   DAB1    36 03                         LD      (HL),003H     ;Reset Com. Card
  378.  
  379.   DAB3    36 15                         LD      (HL),015H     ;300 Baud Com. Card, 8+1 bit
  380.  
  381.   DAB5    3D                    NOCOM:  DEC     A             ;2 = Serial Card
  382.  
  383.   DAB6    20 09                         JR      NZ,NOSER       
  384.  
  385.   DAB8    CD DCEE                       CALL    PREP          
  386.  
  387.   DABB    21 C800                       LD      HL,0C800H     ;Init-Routine Ser. Card
  388.  
  389.   DABE    CD DB3B                       CALL    C6502         ;$C800 = 6502 Adresse Init
  390.  
  391.   DAC1    1D                    NOSER:  DEC     E              
  392.  
  393.   DAC2    20 E1                         JR      NZ,WEITER     ;n{chsten Slot kontrollieren     
  394.  
  395.   DAC4    C9                            RET                    
  396.  
  397.                                 ;
  398.  
  399.                                 ;       Rechnung Start-Adresse Slot-Prom
  400.  
  401.                                 ;       E = Slot-Nr. 0...7, -> HL = Start-Adresse
  402.  
  403.                                 ;
  404.  
  405.   DAC5    21 E000               SLTADD: LD      HL,0E000H     ;Basis I/O-Bereich 
  406.  
  407.   DAC8    7B                            LD      A,E            
  408.  
  409.   DAC9    B4                            OR      H              
  410.  
  411.   DACA    67                            LD      H,A            
  412.  
  413. "APPLE CP/M BIOS"       MACRO-80 3.4    01-Dec-80       PAGE    1-4
  414.  
  415.  
  416.  
  417.  
  418.  
  419.   DACB    C9                            RET                    
  420.  
  421.                                 ;
  422.  
  423.   DACC    31 0080               WBOOT:  LD      SP,00080H      
  424.  
  425.   DACF    3A E051                       LD      A,(TXTSET)      
  426.  
  427.   DAD2    21 0E00                       LD      HL,00E00H     ;$0E00 = 6502 Adresse BOOT CCP
  428.  
  429.   DAD5    CD DFE8                       CALL    PATCH1        ;Patch CCP-Eingabebuffer l|schen    
  430.  
  431.   DAD8    CD DAA2                       CALL    INICRD        ;I/O-Karten initialisieren  
  432.  
  433.   DADB    AF                    WBOOT1: XOR     A              
  434.  
  435.   DADC    32 DEB4                       LD      (UNACNT),A      
  436.  
  437.   DADF    32 DEAF                       LD      (HSTACT),A      
  438.  
  439.   DAE2    3E C3                         LD      A,0C3H        ;(JMP) - Befehl
  440.  
  441.   DAE4    32 0000                       LD      (BOOT),A      
  442.  
  443.   DAE7    21 DA03                       LD      HL,WBOOTE       
  444.  
  445.   DAEA    22 0001                       LD      (BOOTST),HL     
  446.  
  447.   DAED    32 0005                       LD      (BDOS),A      
  448.  
  449.   DAF0    21 CC06                       LD      HL,BDST       ;BDOS Einsprung 
  450.  
  451.   DAF3    22 0006                       LD      (BDOSST),HL     
  452.  
  453.   DAF6    01 0080                       LD      BC,00080H      
  454.  
  455.   DAF9    CD DD8E                       CALL    SETDMA          
  456.  
  457.   DAFC    3E 03                 DIRP:   LD      A,003H        ;03H -> 4 Spalten,
  458.  
  459.                                 ;                             ;LD A,001H initial = (2 Sp.)  
  460.  
  461.   DAFE    32 C8B2                       LD      (CCPDIR),A    ;CCP Patch Directory-Breite 
  462.  
  463.   DB01    3A 0004                       LD      A,(CDISK)      
  464.  
  465.   DB04    4F                            LD      C,A           ;C = Log In Disk 
  466.  
  467.   DB05    C3 C400                       JP      CBASE          
  468.  
  469.                                 ;
  470.  
  471.                                 ;       I/O - Routinen
  472.  
  473.                                 ;       ==============
  474.  
  475.                                 ;
  476.  
  477.                                 ;       Console Status
  478.  
  479.                                 ;
  480.  
  481.   DB08    2A F380               CONST:  LD      HL,(VECCOS)     
  482.  
  483.   DB0B    E9                            JP      (HL)           
  484.  
  485.                                 ;
  486.  
  487.                                 ;       Console Status f}r Apple Keyboard
  488.  
  489.                                 ;       Akku = 0FFH :Zeichen da, sonst Akku = 0
  490.  
  491.                                 ;
  492.  
  493.   DB0C    3A E000               KEYBST: LD      A,(APPKBD)    ;initial     
  494.  
  495.   DB0F    17                            RLA                   ;
  496.  
  497.                                                               ;LD A,(0E0B0H) f}r Slot 3 Com.card
  498.  
  499.                                                               ;RRA
  500.  
  501.   DB10    9F                            SBC     A,A            
  502.  
  503.   DB11    C9                            RET                    
  504.  
  505.                                 ;
  506.  
  507.                                 ;       Console Input
  508.  
  509.                                 ;       Eingabezeichen werden mit Zeichen der Umcodiertabelle
  510.  
  511.                                 ;       verglichen und bei ]bereinstimmung passend ersetzt.
  512.  
  513.                                 ;
  514.  
  515.   DB12    CD DB50               CONIN:  CALL    CONINP          
  516.  
  517.   DB15    21 F3AB                       LD      HL,CHRRED-1   ;Basis f}r Keyboard Redefinition   
  518.  
  519.   DB18    06 06                         LD      B,006H        ;maximal 6 Umcodierungen   
  520.  
  521.   DB1A    4F                            LD      C,A            
  522.  
  523.   DB1B    23                    TSTKEY: INC     HL             
  524.  
  525.   DB1C    7E                            LD      A,(HL)         
  526.  
  527.   DB1D    23                            INC     HL             
  528.  
  529.   DB1E    B7                            OR      A              
  530.  
  531. "APPLE CP/M BIOS"       MACRO-80 3.4    01-Dec-80       PAGE    1-5
  532.  
  533.  
  534.  
  535.  
  536.  
  537.   DB1F    FA DB27                       JP      M,ENDKEY        
  538.  
  539.   DB22    B9                            CP      C              
  540.  
  541.   DB23    7E                            LD      A,(HL)         
  542.  
  543.   DB24    C8                            RET     Z             ;R}cksprung mit Ersetzung 
  544.  
  545.   DB25    10 F4                         DJNZ    TSTKEY          
  546.  
  547.   DB27    79                    ENDKEY: LD      A,C           ;keine Ersetzung 
  548.  
  549.   DB28    C9                            RET                    
  550.  
  551.                                 ;
  552.  
  553.                                 ;       Console Input externes Terminal in Slot 3
  554.  
  555.                                 ;
  556.  
  557.   DB29    11 0003               CIEXT:  LD      DE,00003H     ;Slot 3
  558.  
  559.   DB2C    C3 DD1C                       JP      RDSER         ;          Slot 3 Ser. Card
  560.  
  561.                                                               ;JP KEYBIN initial
  562.  
  563.                                                               ;JP RDCOM  Slot 3 Com. Card
  564.  
  565.                                 ;
  566.  
  567.                                 ;       Console Input Apple Keyboard
  568.  
  569.                                 ;
  570.  
  571.   DB2F    3A E000               KEYBIN: LD      A,(APPKBD)      
  572.  
  573.   DB32    17                            RLA                    
  574.  
  575.   DB33    30 FA                         JR      NC,KEYBIN     ;warte auf Tastendruck  
  576.  
  577.   DB35    32 E010                       LD      (APPKST),A      
  578.  
  579.   DB38    3F                            CCF                   ;MSB = 0 
  580.  
  581.   DB39    1F                            RRA                    
  582.  
  583.   DB3A    C9                            RET                    
  584.  
  585.                                 ;
  586.  
  587.                                 ;       Aufruf von 6502 Routinen
  588.  
  589.                                 ;       6502-Start-Adresse in HL
  590.  
  591.                                 ;
  592.  
  593.   DB3B    22 F3D0               C6502:  LD      (A$VEC),HL     
  594.  
  595.   DB3E    32 E400                       LD      (Z80CRD),A    ;LD (0000H),A initial     
  596.  
  597.   DB41    C9                            RET                    
  598.  
  599.                                 ;
  600.  
  601.                                 ;       IOBYTE - Behandlung
  602.  
  603.                                 ;       ===================
  604.  
  605.                                 ;
  606.  
  607.   DB42    4F                    CO:     LD      C,A            
  608.  
  609.   DB43    3A 0003               CONOUT: LD      A,(IOBYTE)      
  610.  
  611.   DB46    E6 03                         AND     003H          ;Console Feld 
  612.  
  613.   DB48    FE 02                         CP      002H          ;TTY=00 CRT=01 BAT=02 UC1=03
  614.  
  615.   DB4A    20 4B                         JR      NZ,CON       
  616.  
  617.   DB4C    2A F392               LIST1:  LD      HL,(VECLI1)   ;Bei BAT ist LST console out 
  618.  
  619.   DB4F    E9                            JP      (HL)           
  620.  
  621.                                 ;
  622.  
  623.   DB50    3A 0003               CONINP: LD      A,(IOBYTE)      
  624.  
  625.   DB53    E6 03                         AND     003H          ;Console Feld
  626.  
  627.   DB55    FE 02                         CP      002H           
  628.  
  629.   DB57    2A F384                       LD      HL,(VECCI2)     
  630.  
  631.   DB5A    28 06                         JR      Z,READ1       ;Bei BAT ist RDR console in
  632.  
  633.   DB5C    30 07                         JR      NC,JMPHL       
  634.  
  635.   DB5E    2A F382               CI1:    LD      HL,(VECCI1)     
  636.  
  637.   DB61    E9                            JP      (HL)           
  638.  
  639.                                 ;
  640.  
  641.   DB62    2A F38A               READ1:  LD      HL,(VECRE1)     
  642.  
  643.   DB65    E9                    JMPHL:  JP      (HL)           
  644.  
  645.                                 ;
  646.  
  647.   DB66    3A 0003               LIST:   LD      A,(IOBYTE)      
  648.  
  649. "APPLE CP/M BIOS"       MACRO-80 3.4    01-Dec-80       PAGE    1-6
  650.  
  651.  
  652.  
  653.  
  654.  
  655.   DB69    E6 C0                         AND     0C0H          ;LIST Feld 
  656.  
  657.   DB6B    FE 80                         CP      080H          ;TTY=00, CRT=40, LPT=80, UL1=C0
  658.  
  659.   DB6D    38 27                         JR      C,TTY        
  660.  
  661.   DB6F    28 DB                         JR      Z,LIST1        
  662.  
  663.   DB71    2A F394                       LD      HL,(VECLI2)     
  664.  
  665.   DB74    E9                            JP      (HL)           
  666.  
  667.                                 ;
  668.  
  669.   DB75    3A 0003               PUNCH:  LD      A,(IOBYTE)      
  670.  
  671.   DB78    E6 30                         AND     030H          ;PUNCH Feld
  672.  
  673.   DB7A    FE 10                         CP      010H          ;TTY=00, PTP=10, UP1=20, UP2=30
  674.  
  675.   DB7C    38 18                         JR      C,TTY        
  676.  
  677.   DB7E    2A F38E                       LD      HL,(VECPU1)     
  678.  
  679.   DB81    20 E2                         JR      NZ,JMPHL       
  680.  
  681.   DB83    2A F390                       LD      HL,(VECPU2)     
  682.  
  683.   DB86    E9                            JP      (HL)           
  684.  
  685.                                 ;
  686.  
  687.   DB87    3A 0003               READER: LD      A,(IOBYTE)      
  688.  
  689.   DB8A    E6 0C                         AND     00CH          ;READER Feld
  690.  
  691.   DB8C    FE 04                         CP      004H          ;TTY=00, PTR=04, UR1=08, UR2=0C
  692.  
  693.   DB8E    38 CE                         JR      C,CI1        
  694.  
  695.   DB90    28 D0                         JR      Z,READ1        
  696.  
  697.   DB92    2A F38C                       LD      HL,(VECRE2)     
  698.  
  699.   DB95    E9                            JP      (HL)           
  700.  
  701.                                 ;
  702.  
  703.                                 ;       Kontrolle, ob Ausgabezeichen in Software Screen Function
  704.  
  705.                                 ;       Tabelle enthalten, bei ja, ersetzen durch entsprechendes
  706.  
  707.                                 ;       Zeichen aus Hardware Screen Function Tabelle.
  708.  
  709.                                 ;       Bearbeitung von Steuerzeichenfolgen.
  710.  
  711.                                 ;       Zeichen in C-Register
  712.  
  713.                                 ; 
  714.  
  715.   DB96    37                    TTY:    SCF                   ;TTY:, CRT: 
  716.  
  717.   DB97    9F                    CON:    SBC     A,A           ;CONFLG = 0FFH f}r TTY:,CRT: 
  718.  
  719.   DB98    21 DEA2                       LD      HL,CONFLG     ;       = 000H f}r UC1:  
  720.  
  721.   DB9B    77                            LD      (HL),A         
  722.  
  723.   DB9C    CB B9                         RES     7,C            
  724.  
  725.   DB9E    23                            INC     HL            ;CNTFLG
  726.  
  727.   DB9F    7E                            LD      A,(HL)         
  728.  
  729.   DBA0    B7                            OR      A              
  730.  
  731.   DBA1    28 3D                         JR      Z,TCONT        
  732.  
  733.   DBA3    35                            DEC     (HL)          ;CNTFLG - 1 
  734.  
  735.   DBA4    3A F396                       LD      A,(SXYOFF)      
  736.  
  737.   DBA7    21 DEAB                       LD      HL,CURX       
  738.  
  739.   DBAA    28 0C                         JR      Z,NOCH1       ;Z = noch 1 Zeichen
  740.  
  741.   DBAC    B7                            OR      A             ;Behandlung Cursor Adressierung
  742.  
  743.   DBAD    F2 DBB3                       JP      P,SUBOF2      ;P = Y,X
  744.  
  745.   DBB0    2B                            DEC     HL             
  746.  
  747.   DBB1    E6 7F                 SUBOFF: AND     07FH           
  748.  
  749.   DBB3    5F                    SUBOF2: LD      E,A            
  750.  
  751.   DBB4    79                            LD      A,C            
  752.  
  753.   DBB5    93                            SUB     E             ;subtrahiere Offset 
  754.  
  755.   DBB6    77                            LD      (HL),A        ;speichere CURX oder CURY 
  756.  
  757.   DBB7    C9                            RET                    
  758.  
  759.                                 ;
  760.  
  761.                                 ;       Cursoradressierung x,y
  762.  
  763.                                 ;
  764.  
  765.   DBB8    B7                    NOCH1:  OR      A              
  766.  
  767. "APPLE CP/M BIOS"       MACRO-80 3.4    01-Dec-80       PAGE    1-7
  768.  
  769.  
  770.  
  771.  
  772.  
  773.   DBB9    FA DBBD                       JP      M,XY          ;M = X,Y 
  774.  
  775.   DBBC    2B                            DEC     HL             
  776.  
  777.   DBBD    CD DBB1               XY:     CALL    SUBOFF          
  778.  
  779.   DBC0    2A DEAA                       LD      HL,(CURY)     
  780.  
  781.   DBC3    3A F3A1                       LD      A,(HXYOFF)      
  782.  
  783.   DBC6    B7                            OR      A              
  784.  
  785.   DBC7    F2 DBCF                       JP      P,NOSWAP      ;P = Y,X  
  786.  
  787.   DBCA    E6 7F                         AND     07FH           
  788.  
  789.   DBCC    5D                            LD      E,L           ;H und L tauschen
  790.  
  791.   DBCD    6C                            LD      L,H            
  792.  
  793.   DBCE    63                            LD      H,E          
  794.  
  795.   DBCF    5F                    NOSWAP: LD      E,A           ;Offset addieren 
  796.  
  797.   DBD0    84                            ADD     A,H            
  798.  
  799.   DBD1    4F                            LD      C,A            
  800.  
  801.   DBD2    7B                            LD      A,E            
  802.  
  803.   DBD3    85                            ADD     A,L            
  804.  
  805.   DBD4    F5                            PUSH    AF             
  806.  
  807.   DBD5    06 07                         LD      B,007H        ;Funktion 7 
  808.  
  809.   DBD7    CD DC2D                       CALL    FINISH        ;1. Koordinate
  810.  
  811.   DBDA    F1                            POP     AF             
  812.  
  813.   DBDB    06 0A                         LD      B,00AH        ;Funktion 10 
  814.  
  815.   DBDD    4F                    COUT:   LD      C,A           ;2. Koordinate
  816.  
  817.   DBDE    18 4D                         JR      FINISH          
  818.  
  819.                                 ;
  820.  
  821.   DBE0    47                    TCONT:  LD      B,A           ;Teste auf Steuerzeichen 
  822.  
  823.   DBE1    21 DEA4                       LD      HL,LDINFL       
  824.  
  825.   DBE4    7E                            LD      A,(HL)         
  826.  
  827.   DBE5    5F                            LD      E,A            
  828.  
  829.   DBE6    B7                            OR      A              
  830.  
  831.   DBE7    20 11                         JR      NZ,SRCH2      ;NZ = kein Lead-In 
  832.  
  833.   DBE9    3A F397                       LD      A,(SFLDIN)      
  834.  
  835.   DBEC    B7                            OR      A              
  836.  
  837.   DBED    28 06                         JR      Z,SEARCH      ;z = kein Lead-In-Zeichen n|tig
  838.  
  839.   DBEF    B9                            CP      C              
  840.  
  841.   DBF0    20 03                         JR      NZ,SEARCH     ;ist Lead-In-Zeichen ?  
  842.  
  843.   DBF2    36 80                         LD      (HL),080H     ;wenn ja, LDINFL = 080H  
  844.  
  845.   DBF4    C9                            RET                    
  846.  
  847.                                 ;
  848.  
  849.                                 ;       Suche in Software-Tabelle
  850.  
  851.                                 ;
  852.  
  853.   DBF5    3E 1F                 SEARCH: LD      A,01FH   
  854.  
  855.   DBF7    B9                            CP      C             ;ist Steuerzeichen ? 
  856.  
  857.   DBF8    38 33                         JR      C,FINISH        
  858.  
  859.   DBFA    21 F3A0               SRCH2:  LD      HL,HXYOFF-1   ;Ende Screen Funct. Table Software
  860.  
  861.   DBFD    06 09                         LD      B,009H        ;9 Funktionen m|glich  
  862.  
  863.   DBFF    7E                    TESTFN: LD      A,(HL)         
  864.  
  865.   DC00    B7                            OR      A              
  866.  
  867.   DC01    28 04                         JR      Z,NOTAVL      ;Z = Funktion nicht vorhanden  
  868.  
  869.   DC03    AB                            XOR     E              
  870.  
  871.   DC04    B9                            CP      C              
  872.  
  873.   DC05    28 05                         JR      Z,MATCH        
  874.  
  875.   DC07    2B                    NOTAVL: DEC     HL            ;testet r}ckw{rts 
  876.  
  877.   DC08    10 F5                         DJNZ    TESTFN        ;teste weiter  
  878.  
  879.   DC0A    18 21                         JR      FINISH        ;nicht gefunden  
  880.  
  881.                                 ;
  882.  
  883.                                 ;       Ersetzen von Steuerzeichen
  884.  
  885. "APPLE CP/M BIOS"       MACRO-80 3.4    01-Dec-80       PAGE    1-8
  886.  
  887.  
  888.  
  889.  
  890.  
  891.                                 ;
  892.  
  893.   DC0C    11 000B               MATCH:  LD      DE,0000BH     ;Offset Hard- zu Software-Tabelle 
  894.  
  895.   DC0F    19                            ADD     HL,DE          
  896.  
  897.   DC10    7E                            LD      A,(HL)         
  898.  
  899.   DC11    B7                            OR      A              
  900.  
  901.   DC12    4F                            LD      C,A            
  902.  
  903.   DC13    F2 DC23                       JP      P,NOLEAD      ;P = kein Lead-In n|tig  
  904.  
  905.   DC16    E6 7F                         AND     07FH           
  906.  
  907.   DC18    4F                            LD      C,A            
  908.  
  909.   DC19    C5                            PUSH    BC             
  910.  
  911.   DC1A    3A F3A2                       LD      A,(HFLDIN)      
  912.  
  913.   DC1D    06 07                         LD      B,007H         
  914.  
  915.   DC1F    CD DBDD                       CALL    COUT          ;Lead-In ausgeben
  916.  
  917.   DC22    C1                            POP     BC             
  918.  
  919.   DC23    78                    NOLEAD: LD      A,B            
  920.  
  921.   DC24    FE 07                         CP      007H          ;Funktion 7 = Adress Cursor 
  922.  
  923.   DC26    20 05                         JR      NZ,FINISH       
  924.  
  925.   DC28    3E 02                         LD      A,002H        ;noch 2 Zeichen 
  926.  
  927.   DC2A    32 DEA3                       LD      (CNTFLG),A      
  928.  
  929.   DC2D    AF                    FINISH: XOR     A              
  930.  
  931.   DC2E    32 DEA4                       LD      (LDINFL),A    ;Lead-In erledigt  
  932.  
  933.   DC31    3A DEA2                       LD      A,(CONFLG)    ;UC1: oder TTY: ?  
  934.  
  935.   DC34    B7                            OR      A              
  936.  
  937.   DC35    2A F388                       LD      HL,(VECCO2)   ;UC1:  
  938.  
  939.   DC38    28 03                         JR      Z,JPHL1        
  940.  
  941.   DC3A    2A F386                       LD      HL,(VECCO1)   ;TTY:  
  942.  
  943.   DC3D    E9                    JPHL1:  JP      (HL)           
  944.  
  945.                                 ;
  946.  
  947.                                 ;       Console Ausgabe externes Terminal
  948.  
  949.                                 ;       
  950.  
  951.   DC3E    11 0003               COEXT:  LD      DE,00003H     ;Slot 3
  952.  
  953.   DC41    C3 DD04                       JP      WRSER         ;          Slot 3 Ser. Card
  954.  
  955.                                                               ;JP APPSCR initial   
  956.  
  957.                                                               ;JP WRCOM  Slot 3 Com. Card
  958.  
  959.                                 ;
  960.  
  961.                                 ;       Apple Screen Output
  962.  
  963.                                 ;
  964.  
  965.   DC44    2A DEA5               APPSCR: LD      HL,(SCRCUR)     
  966.  
  967.   DC47    3A DEA7                       LD      A,(SCRZCH)      
  968.  
  969.   DC4A    77                            LD      (HL),A         
  970.  
  971.   DC4B    CD DC6B                       CALL    SCRFUN          
  972.  
  973.   DC4E    2A F028                       LD      HL,(BASL)     
  974.  
  975.   DC51    3A F024                       LD      A,(CH)      
  976.  
  977.   DC54    5F                            LD      E,A           ;Rechnung Bildschirm-Adresse 
  978.  
  979.   DC55    16 F0                         LD      D,0F0H        ;Z80-  = 6502 Adresse + $F000
  980.  
  981.   DC57    19                            ADD     HL,DE          
  982.  
  983.   DC58    22 DEA5                       LD      (SCRCUR),HL     
  984.  
  985.   DC5B    7E                            LD      A,(HL)         
  986.  
  987.   DC5C    32 DEA7                       LD      (SCRZCH),A      
  988.  
  989.   DC5F    FE E0                         CP      0E0H           
  990.  
  991.   DC61    38 02                         JR      C,UP        
  992.  
  993.   DC63    EE 20                         XOR     020H          ;Upper Case erzeugen
  994.  
  995.   DC65    E6 3F                 UP:     AND     03FH           
  996.  
  997.   DC67    F6 40                         OR      040H           
  998.  
  999.   DC69    77                            LD      (HL),A         
  1000.  
  1001.   DC6A    C9                            RET                    
  1002.  
  1003. "APPLE CP/M BIOS"       MACRO-80 3.4    01-Dec-80       PAGE    1-9
  1004.  
  1005.  
  1006.  
  1007.  
  1008.  
  1009.                                 ;
  1010.  
  1011.                                 ;       Screen Function Routine
  1012.  
  1013.                                 ;       Register B enth{lt Funktions Nr.
  1014.  
  1015.                                 ;
  1016.  
  1017.   DC6B    78                    SCRFUN: LD      A,B            
  1018.  
  1019.   DC6C    B7                            OR      A              
  1020.  
  1021.   DC6D    28 0B                         JR      Z,NOFUN        
  1022.  
  1023.   DC6F    21 DB3B                       LD      HL,C6502       
  1024.  
  1025.   DC72    E5                            PUSH    HL             
  1026.  
  1027.   DC73    21 DCD4                       LD      HL,FUNTAB-1   ;Einsprung aus Tabelle holen  
  1028.  
  1029.   DC76    85                            ADD     A,L            
  1030.  
  1031.   DC77    6F                            LD      L,A            
  1032.  
  1033.   DC78    6E                            LD      L,(HL)         
  1034.  
  1035.   DC79    E9                            JP      (HL)           
  1036.  
  1037.                                 ;
  1038.  
  1039.   DC7A    79                    NOFUN:  LD      A,C            
  1040.  
  1041.   DC7B    FE 0D                         CP      00DH          ;Carriage Return
  1042.  
  1043.   DC7D    20 05                         JR      NZ,NOCR       
  1044.  
  1045.   DC7F    AF                            XOR     A              
  1046.  
  1047.   DC80    32 F024                       LD      (CH),A        ;CH = 0
  1048.  
  1049.   DC83    C9                            RET                    
  1050.  
  1051.                                 ;
  1052.  
  1053.   DC84    F6 80                 NOCR:   OR      080H           
  1054.  
  1055.   DC86    FE E0                         CP      0E0H           
  1056.  
  1057.   DC88    38 04                         JR      C,UC        
  1058.  
  1059.   DC8A    21 F3DD                       LD      HL,0F3DDH     ;$F3DD = Maske Upper Case
  1060.  
  1061.   DC8D    AE                            XOR     (HL)          ; =020H f}r Gro~/Kleinschreib. 
  1062.  
  1063.   DC8E    32 F045               UC:     LD      (A$ACC),A      
  1064.  
  1065.   DC91    21 FDF0                       LD      HL,0FDF0H     ;$FDF0 = 6502 COUT1
  1066.  
  1067.   DC94    18 79                         JR      CC6502          
  1068.  
  1069.                                 ;
  1070.  
  1071.                                 ;
  1072.  
  1073.   DC96    3E FF                 FUN4:   LD      A,0FFH        ;normal
  1074.  
  1075.   DC98    01                            DEFB    001H          ; (LD BC,..) }berspringt n. Befehl 
  1076.  
  1077.   DC99    3E 3F                 FUN5:   LD      A,03FH        ;inverse
  1078.  
  1079.   DC9B    32 F032                       LD      (INVFLG),A      
  1080.  
  1081.   DC9E    E1                    FUN7:   POP     HL             
  1082.  
  1083.   DC9F    C9                            RET                    
  1084.  
  1085.                                 ;
  1086.  
  1087.                                 ;
  1088.  
  1089.   DCA0    21 FBF4               FUN9:   LD      HL,0FBF4H     ;$FBF4 = 6502 ADVANCE
  1090.  
  1091.   DCA3    C9                            RET                    
  1092.  
  1093.                                 ;
  1094.  
  1095.                                 ;
  1096.  
  1097.   DCA4    AF                    FUN6:   XOR     A             ;Home Cursor
  1098.  
  1099.   DCA5    6F                            LD      L,A           ;CH, CV = 0
  1100.  
  1101.   DCA6    67                            LD      H,A            
  1102.  
  1103.   DCA7    22 F024                       LD      (CH),HL     
  1104.  
  1105.   DCAA    32 F045               BASCAL: LD      (A$ACC),A      
  1106.  
  1107.   DCAD    21 FBC1                       LD      HL,0FBC1H     ;$FBC1 = 6502 BASCALC
  1108.  
  1109.   DCB0    C9                            RET                    
  1110.  
  1111.                                 ;
  1112.  
  1113.   DCB1    2E 42                 FUN2:   LD      L,042H        ;$FC42 = 6502 CLREOP
  1114.  
  1115.   DCB3    01                            DEFB    001H          ; (LD BC,..) }berspringt n. Befehl        
  1116.  
  1117.   DCB4    2E 9C                 FUN3:   LD      L,09CH        ;$FC9C = 6502 CLREOL
  1118.  
  1119.   DCB6    01                            DEFB    001H          ; (LD BC,..)  
  1120.  
  1121. "APPLE CP/M BIOS"       MACRO-80 3.4    01-Dec-80       PAGE    1-10
  1122.  
  1123.  
  1124.  
  1125.  
  1126.  
  1127.   DCB7    2E 1A                 FUN8:   LD      L,01AH        ;$FC1A = 6502 UP
  1128.  
  1129.   DCB9    01                            DEFB    001H          ; (LD BC,..)  
  1130.  
  1131.   DCBA    2E 58                 FUN1:   LD      L,058H        ;$FC58 = 6502 HOME
  1132.  
  1133.   DCBC    26 FC                         LD      H,0FCH         
  1134.  
  1135.   DCBE    C9                            RET                    
  1136.  
  1137.                                 ;
  1138.  
  1139.   DCBF    2A DEAA               FUN10:  LD      HL,(CURY)     ;kontrolliere auf Schirmfenster
  1140.  
  1141.   DCC2    7D                            LD      A,L            
  1142.  
  1143.   DCC3    FE 28                         CP      028H          ;40 Spalten 
  1144.  
  1145.   DCC5    38 02                         JR      C,XOK        
  1146.  
  1147.   DCC7    2E 00                         LD      L,000H         
  1148.  
  1149.   DCC9    7C                    XOK:    LD      A,H            
  1150.  
  1151.   DCCA    FE 18                         CP      018H          ;24 Zeilen
  1152.  
  1153.   DCCC    38 02                         JR      C,YOK        
  1154.  
  1155.   DCCE    26 00                         LD      H,000H         
  1156.  
  1157.   DCD0    22 F024               YOK:    LD      (CH),HL     
  1158.  
  1159.   DCD3    18 D5                         JR      BASCAL          
  1160.  
  1161.                                 ;
  1162.  
  1163.                                 ;       Tabelle Screen Functions
  1164.  
  1165.                                 ;
  1166.  
  1167.   DCD5    BA                    FUNTAB: DEFB    LOW (FUN1)    ;Function 1 Clear Screen
  1168.  
  1169.   DCD6    B1                            DEFB    LOW (FUN2)    ;Function 2 Clear to End of Page
  1170.  
  1171.   DCD7    B4                            DEFB    LOW (FUN3)    ;Function 3 Clear to End of Line
  1172.  
  1173.   DCD8    96                            DEFB    LOW (FUN4)    ;Function 4 Set Normal
  1174.  
  1175.   DCD9    99                            DEFB    LOW (FUN5)    ;Function 5 Set Inverse
  1176.  
  1177.   DCDA    A4                            DEFB    LOW (FUN6)    ;Function 6 Home Cursor
  1178.  
  1179.   DCDB    9E                            DEFB    LOW (FUN7)    ;Function 7 Address Cursor
  1180.  
  1181.   DCDC    B7                            DEFB    LOW (FUN8)    ;Function 8 Move Up Cursor
  1182.  
  1183.   DCDD    A0                            DEFB    LOW (FUN9)    ;Function 9 Non-Destr. Move Forw.
  1184.  
  1185.   DCDE    BF                            DEFB    LOW (FUN10)   ;Function 10 (Adress Curs.)
  1186.  
  1187.                                 ;
  1188.  
  1189.                                 ;       Ausgabe Communications Card
  1190.  
  1191.                                 ;
  1192.  
  1193.   DCDF    CD DD60               WRCOM:  CALL    SLSTAT          
  1194.  
  1195.   DCE2    7E                    CMWAIT: LD      A,(HL)         
  1196.  
  1197.   DCE3    E6 02                         AND     002H           
  1198.  
  1199.   DCE5    28 FB                         JR      Z,CMWAIT      ;warte auf UART 
  1200.  
  1201.   DCE7    2C                            INC     L              
  1202.  
  1203.   DCE8    71                            LD      (HL),C         
  1204.  
  1205.   DCE9    C9                            RET                    
  1206.  
  1207.                                 ;
  1208.  
  1209.   DCEA    79                    SPREP:  LD      A,C            
  1210.  
  1211.   DCEB    32 F045                       LD      (A$ACC),A      
  1212.  
  1213.   DCEE    CD DD5B               PREP:   CALL    SLTDAT          
  1214.  
  1215.   DCF1    32 F6F8                       LD      (SLOT),A      
  1216.  
  1217.   DCF4    32 F047                       LD      (A$YREG),A      
  1218.  
  1219.   DCF7    3A EFFF                       LD      A,(CLRROM)      
  1220.  
  1221.   DCFA    CD DAC5                       CALL    SLTADD          
  1222.  
  1223.   DCFD    D6 20                         SUB     020H           
  1224.  
  1225.   DCFF    32 F046                       LD      (A$XREG),A    ;High-Byte Slot 6502  
  1226.  
  1227.   DD02    7E                            LD      A,(HL)         
  1228.  
  1229.   DD03    C9                            RET                    
  1230.  
  1231.                                 ;
  1232.  
  1233.                                 ;       Ausgabe Serial Card
  1234.  
  1235.                                 ;
  1236.  
  1237.   DD04    CD DCEA               WRSER:  CALL    SPREP          
  1238.  
  1239. "APPLE CP/M BIOS"       MACRO-80 3.4    01-Dec-80       PAGE    1-11
  1240.  
  1241.  
  1242.  
  1243.  
  1244.  
  1245.   DD07    21 F678                       LD      HL,BYTE       ;BYTE ist slotabh{ngig
  1246.  
  1247.   DD0A    19                            ADD     HL,DE          
  1248.  
  1249.   DD0B    71                            LD      (HL),C         
  1250.  
  1251.   DD0C    21 C9AA                       LD      HL,0C9AAH     ;$C9AA = 6502 Write Serial Card
  1252.  
  1253.   DD0F    C3 DB3B               CC6502: JP      C6502          
  1254.  
  1255.                                 ;
  1256.  
  1257.                                 ;       Eingabe Communications Card
  1258.  
  1259.                                 ;
  1260.  
  1261.   DD12    CD DD60               RDCOM:  CALL    SLSTAT          
  1262.  
  1263.   DD15    7E                    RCWAIT: LD      A,(HL)         
  1264.  
  1265.   DD16    1F                            RRA                    
  1266.  
  1267.   DD17    30 FC                         JR      NC,RCWAIT     ;warte auf UART  
  1268.  
  1269.   DD19    2C                            INC     L              
  1270.  
  1271.   DD1A    7E                            LD      A,(HL)         
  1272.  
  1273.   DD1B    C9                            RET                    
  1274.  
  1275.                                 ;
  1276.  
  1277.                                 ;       Eingabe Serial Card
  1278.  
  1279.                                 ;
  1280.  
  1281.   DD1C    CD DCEE               RDSER:  CALL    PREP          
  1282.  
  1283.   DD1F    21 C84D                       LD      HL,0C84DH     ;$C84D = 6502 Read Serial Card
  1284.  
  1285.   DD22    CD DB3B                       CALL    C6502          
  1286.  
  1287.   DD25    21 F678                       LD      HL,BYTE       ;BYTE slotabh{ngig 
  1288.  
  1289.   DD28    19                            ADD     HL,DE          
  1290.  
  1291.   DD29    7E                            LD      A,(HL)         
  1292.  
  1293.   DD2A    C9                            RET                    
  1294.  
  1295.                                 ;
  1296.  
  1297.   DD2B    11 0001               LSTOUT: LD      DE,00001H     ;Slot 1 Printer 
  1298.  
  1299.   DD2E    C3 DD31                       JP      WPRINT        ;         Slot 1 Par. Print Card
  1300.  
  1301.                                                               ;JP RET1  initial
  1302.  
  1303.                                                               ;JP WRCOM Slot 1 Com. Card
  1304.  
  1305.                                                               ;JP WRSER Slot 1 Ser. Card  
  1306.  
  1307.                                 ;
  1308.  
  1309.   DD31    CD DAC5               WPRINT: CALL    SLTADD          
  1310.  
  1311.   DD34    2E C1                         LD      L,0C1H        ;$E9C1 = Status-Adresse Printer
  1312.  
  1313.   DD36    7E                    PWAIT:  LD      A,(HL)         
  1314.  
  1315.   DD37    17                            RLA                    
  1316.  
  1317.   DD38    38 FC                         JR      C,PWAIT       ;warte auf Printer ready 
  1318.  
  1319.   DD3A    CD DD5B                       CALL    SLTDAT          
  1320.  
  1321.   DD3D    71                            LD      (HL),C         
  1322.  
  1323.   DD3E    C9                    RET1:   RET                    
  1324.  
  1325.                                 ;
  1326.  
  1327.   DD3F    11 0002               PUNOUT: LD      DE,00002H     ;Slot 2 Punch
  1328.  
  1329.   DD42    C3 DCDF                       JP      WRCOM         ;          Slot 2 Com. Card
  1330.  
  1331.                                                               ;JP RET1   initial
  1332.  
  1333.                                                               ;JP WRSER  Slot 2 Ser. Card
  1334.  
  1335.                                                               ;JP WPRINT Slot 2 Par. Print Card 
  1336.  
  1337.                                 ;
  1338.  
  1339.   DD45    11 0002               READIN: LD      DE,00002H     ;Slot 2 Reader
  1340.  
  1341.   DD48    C3 DD12                       JP      RDCOM         ;         Slot 2 Com. Card
  1342.  
  1343.                                                               ;LD A,01AH; RET, wenn kein Input  
  1344.  
  1345.                                                               ;JP RDSER Slot 2 Ser. Card
  1346.  
  1347.                                                               ;JP 0000H initial
  1348.  
  1349.                                 ;
  1350.  
  1351.                                 ;       DISK - Routinen
  1352.  
  1353.                                 ;       ===============
  1354.  
  1355.                                 ;
  1356.  
  1357. "APPLE CP/M BIOS"       MACRO-80 3.4    01-Dec-80       PAGE    1-12
  1358.  
  1359.  
  1360.  
  1361.  
  1362.  
  1363.   DD4B    3A DEB0               HOME:   LD      A,(HOSTWR)      
  1364.  
  1365.   DD4E    B7                            OR      A              
  1366.  
  1367.   DD4F    20 03                         JR      NZ,NOTWR       
  1368.  
  1369.   DD51    32 DEAF                       LD      (HSTACT),A      
  1370.  
  1371.   DD54    0E 00                 NOTWR:  LD      C,000H         
  1372.  
  1373.   DD56    79                    SETTRK: LD      A,C            
  1374.  
  1375.   DD57    32 DEA8                       LD      (IOTRK),A      
  1376.  
  1377.   DD5A    C9                            RET                    
  1378.  
  1379.                                 ;
  1380.  
  1381.                                 ;       Berechnung slotabh{ngiger Adressen
  1382.  
  1383.                                 ;       HL = Basis + 16 * E-Reg.
  1384.  
  1385.                                 ;
  1386.  
  1387.   DD5B    21 E080               SLTDAT: LD      HL,0E080H      
  1388.  
  1389.   DD5E    18 03                         JR      SLT1          
  1390.  
  1391.                                 ;
  1392.  
  1393.   DD60    21 E08E               SLSTAT: LD      HL,0E08EH      
  1394.  
  1395.   DD63    7B                    SLT1:   LD      A,E            
  1396.  
  1397.   DD64    87                    SLT2:   ADD     A,A            
  1398.  
  1399.   DD65    87                            ADD     A,A            
  1400.  
  1401.   DD66    87                            ADD     A,A            
  1402.  
  1403.   DD67    87                            ADD     A,A            
  1404.  
  1405.   DD68    F5                            PUSH    AF             
  1406.  
  1407.   DD69    85                            ADD     A,L            
  1408.  
  1409.   DD6A    6F                            LD      L,A            
  1410.  
  1411.   DD6B    F1                            POP     AF            ;Akku = 16 * E 
  1412.  
  1413.   DD6C    C9                            RET                    
  1414.  
  1415.                                 ;
  1416.  
  1417.   DD6D    11 DEAC               SELDSK: LD      DE,OLDDRV       
  1418.  
  1419.   DD70    21 0004                       LD      HL,CDISK      
  1420.  
  1421.   DD73    3A F3B8                       LD      A,(DSKCNT)      
  1422.  
  1423.   DD76    3D                            DEC     A              
  1424.  
  1425.   DD77    B9                            CP      C             ;Drive-Nummer erlaubt ? 
  1426.  
  1427.   DD78    38 0A                         JR      C,DSKERR        
  1428.  
  1429.   DD7A    7E                            LD      A,(HL)         
  1430.  
  1431.   DD7B    12                            LD      (DE),A         
  1432.  
  1433.   DD7C    13                            INC     DE             
  1434.  
  1435.   DD7D    79                            LD      A,C            
  1436.  
  1437.   DD7E    12                            LD      (DE),A         
  1438.  
  1439.   DD7F    21 DA33                       LD      HL,DPE0       ;HL zeigt auf Disk Param. Header
  1440.  
  1441.   DD82    18 E0                         JR      SLT2          
  1442.  
  1443.                                 ;
  1444.  
  1445.   DD84    1A                    DSKERR: LD      A,(DE)        ;Fehler: Drive nicht vorhanden 
  1446.  
  1447.   DD85    77                            LD      (HL),A         
  1448.  
  1449.   DD86    2E 00                         LD      L,000H        ;HL = 0000 
  1450.  
  1451.   DD88    C9                            RET                    
  1452.  
  1453.                                 ;
  1454.  
  1455.   DD89    79                    SETSEC: LD      A,C            
  1456.  
  1457.   DD8A    32 DEA9                       LD      (IOSEC),A      
  1458.  
  1459.   DD8D    C9                            RET                    
  1460.  
  1461.                                 ;
  1462.  
  1463.   DD8E    ED 43 DEB8            SETDMA: LD      (IOBUF),BC     
  1464.  
  1465.   DD92    C9                            RET                    
  1466.  
  1467.                                 ;   
  1468.  
  1469.                                 ;       Disk Block/Deblock-Routinen
  1470.  
  1471.                                 ;       vergleiche auch CP/M Alteration Guide
  1472.  
  1473.                                 ;
  1474.  
  1475. "APPLE CP/M BIOS"       MACRO-80 3.4    01-Dec-80       PAGE    1-13
  1476.  
  1477.  
  1478.  
  1479.  
  1480.  
  1481.                                 ;       CP/M BDOS   1K Bl|cke
  1482.  
  1483.                                 ;       CP/M BIOS   128 Bytes records
  1484.  
  1485.                                 ;       Apple Drive 256 Bytes Sektoren
  1486.  
  1487.                                 ;
  1488.  
  1489.                                 ;       Bei Read Kontrolle, ob unmittelbar vorher schon
  1490.  
  1491.                                 ;       entsprechenden Apple-Drive Sektor gelesen. Dann nicht
  1492.  
  1493.                                 ;       noch einmal lesen. Vor dem Lesen Kontrolle, ob Disk-
  1494.  
  1495.                                 ;       Buffer erst noch geschrieben werden mu~.
  1496.  
  1497.                                 ;       Bei Write Kontrolle, ob vorher Lesen der zweiten H{lfte
  1498.  
  1499.                                 ;       der 256 Byte Disk-Buffers n|tig.
  1500.  
  1501.                                 ;
  1502.  
  1503.   DD93    AF                    READ:   XOR     A              
  1504.  
  1505.   DD94    32 DEB4                       LD      (UNACNT),A      
  1506.  
  1507.   DD97    3E 02                         LD      A,002H         
  1508.  
  1509.   DD99    21 DEB1                       LD      HL,READOP       
  1510.  
  1511.   DD9C    77                            LD      (HL),A        ;READOP = 2, read 
  1512.  
  1513.   DD9D    23                            INC     HL             
  1514.  
  1515.   DD9E    77                            LD      (HL),A        ;WRTYPE = 2, unallocated 
  1516.  
  1517.   DD9F    23                            INC     HL             
  1518.  
  1519.   DDA0    77                            LD      (HL),A        ;RSFLAG = 2, read 
  1520.  
  1521.   DDA1    18 4F                         JR      RWOPER          
  1522.  
  1523.                                 ;
  1524.  
  1525.                                 ;       Write: BDOS-Information in C-Register:
  1526.  
  1527.                                 ;       C = 0 normal sector write
  1528.  
  1529.                                 ;       C = 1 directory write
  1530.  
  1531.                                 ;       C = 2 first sector write, unallocated
  1532.  
  1533.                                 ;
  1534.  
  1535.   DDA3    61                    WRITE:  LD      H,C            
  1536.  
  1537.   DDA4    2E 00                         LD      L,000H         
  1538.  
  1539.   DDA6    22 DEB1                       LD      (READOP),HL     
  1540.  
  1541.   DDA9    79                            LD      A,C            
  1542.  
  1543.   DDAA    FE 02                         CP      002H          ;Write unallocated? erster Sektor
  1544.  
  1545.   DDAC    20 0F                         JR      NZ,CHKUNA       
  1546.  
  1547.   DDAE    2E 08                         LD      L,008H        ;1 K / 128 Bytes 
  1548.  
  1549.   DDB0    3A DEAD                       LD      A,(NEWDRV)      
  1550.  
  1551.   DDB3    67                            LD      H,A            
  1552.  
  1553.   DDB4    22 DEB4                       LD      (UNACNT),HL     
  1554.  
  1555.   DDB7    2A DEA8                       LD      HL,(IOTRK)     
  1556.  
  1557.   DDBA    22 DEB6                       LD      (UNATRK),HL     
  1558.  
  1559.   DDBD    21 DEB4               CHKUNA: LD      HL,UNACNT     ;Check unallocated  
  1560.  
  1561.   DDC0    7E                            LD      A,(HL)         
  1562.  
  1563.   DDC1    B7                            OR      A             ;noch Sektoren unallocated? 
  1564.  
  1565.   DDC2    28 28                         JR      Z,ALLOC        
  1566.  
  1567.   DDC4    35                            DEC     (HL)          ;UNACNT - 1 
  1568.  
  1569.   DDC5    3A DEAD                       LD      A,(NEWDRV)      
  1570.  
  1571.   DDC8    23                            INC     HL            ;UNADSK 
  1572.  
  1573.   DDC9    BE                            CP      (HL)          ;gleicher Drive ? 
  1574.  
  1575.   DDCA    20 20                         JR      NZ,ALLOC       
  1576.  
  1577.                                 ;
  1578.  
  1579.   DDCC    3A DEA8                       LD      A,(IOTRK)     ;ja, gleicher Drive 
  1580.  
  1581.   DDCF    2A DEB6                       LD      HL,(UNATRK)     
  1582.  
  1583.   DDD2    BD                            CP      L              
  1584.  
  1585.   DDD3    20 17                         JR      NZ,ALLOC       
  1586.  
  1587.   DDD5    3A DEA9                       LD      A,(IOSEC)      
  1588.  
  1589.   DDD8    BC                            CP      H             ;gleicher Sektor, gleicher Track ? 
  1590.  
  1591.   DDD9    20 11                         JR      NZ,ALLOC       
  1592.  
  1593. "APPLE CP/M BIOS"       MACRO-80 3.4    01-Dec-80       PAGE    1-14
  1594.  
  1595.  
  1596.  
  1597.  
  1598.  
  1599.   DDDB    24                            INC     H              
  1600.  
  1601.   DDDC    7C                            LD      A,H            
  1602.  
  1603.   DDDD    D6 20                         SUB     020H           
  1604.  
  1605.   DDDF    38 02                         JR      C,NOOVF        
  1606.  
  1607.                                 ;
  1608.  
  1609.   DDE1    67                            LD      H,A           ;Overflow auf n{chsten Track 
  1610.  
  1611.   DDE2    2C                            INC     L             ;Sektor = 0, Track + 1 
  1612.  
  1613.   DDE3    22 DEB6               NOOVF:  LD      (UNATRK),HL     
  1614.  
  1615.   DDE6    AF                            XOR     A              
  1616.  
  1617.   DDE7    32 DEB3                       LD      (RSFLAG),A    ;Read nicht n|tig  
  1618.  
  1619.   DDEA    18 06                         JR      RWOPER          
  1620.  
  1621.                                 ;
  1622.  
  1623.   DDEC    21 0001               ALLOC:  LD      HL,00001H     ;nicht unallocated, Read n|tig 
  1624.  
  1625.   DDEF    22 DEB3                       LD      (RSFLAG),HL   ;RSFLAG = 1 ,UNACNT = 0
  1626.  
  1627.                                 ;
  1628.  
  1629.                                 ;       gemeinsamer Code f}r Read / Write
  1630.  
  1631.                                 ; 
  1632.  
  1633.   DDF2    CD DFF0               RWOPER: CALL    PATCH2          
  1634.  
  1635.   DDF5    5F                            LD      E,A            
  1636.  
  1637.   DDF6    1F                            RRA                   ;rechne Host sektor 
  1638.  
  1639.   DDF7    21 DE92                       LD      HL,INTTAB       
  1640.  
  1641.   DDFA    85                            ADD     A,L            
  1642.  
  1643.   DDFB    6F                            LD      L,A            
  1644.  
  1645.   DDFC    4E                            LD      C,(HL)         
  1646.  
  1647.   DDFD    21 DEAF                       LD      HL,HSTACT       
  1648.  
  1649.   DE00    7E                            LD      A,(HL)         
  1650.  
  1651.   DE01    36 01                         LD      (HL),001H     ;Host aktiv Flag = 1 
  1652.  
  1653.   DE03    B7                            OR      A             ;war schon vorher aktiv ? 
  1654.  
  1655.   DE04    28 1B                         JR      Z,FILHST      ;wenn nein, Buffer f}llen  
  1656.  
  1657.                                 ;
  1658.  
  1659.   DE06    2A DEAD                       LD      HL,(NEWDRV)   ;Host Buffer war aktiv  
  1660.  
  1661.   DE09    7D                            LD      A,L            
  1662.  
  1663.   DE0A    BC                            CP      H             ;gleicher Drive ? 
  1664.  
  1665.   DE0B    20 0D                         JR      NZ,NOMTCH       
  1666.  
  1667.   DE0D    2A F3E0                       LD      HL,(PHTS)     
  1668.  
  1669.   DE10    3A DEA8                       LD      A,(IOTRK)      
  1670.  
  1671.   DE13    BD                            CP      L             ;gleicher Track ? 
  1672.  
  1673.   DE14    20 04                         JR      NZ,NOMTCH       
  1674.  
  1675.   DE16    79                            LD      A,C            
  1676.  
  1677.   DE17    BC                            CP      H             ;gleicher Sektor ? 
  1678.  
  1679.   DE18    28 33                         JR      Z,DMATCH        
  1680.  
  1681.                                 ;
  1682.  
  1683.   DE1A    3A DEB0               NOMTCH: LD      A,(HOSTWR)      
  1684.  
  1685.   DE1D    B7                            OR      A              
  1686.  
  1687.   DE1E    C4 DE73                       CALL    NZ,WRTHST       
  1688.  
  1689.                                 ;
  1690.  
  1691.                                 ;       256 Byte - Disk-Buffer f}llen 
  1692.  
  1693.                                 ;
  1694.  
  1695.   DE21    3A DEAD               FILHST: LD      A,(NEWDRV)      
  1696.  
  1697.   DE24    32 DEAE                       LD      (HSTDSK),A      
  1698.  
  1699.   DE27    47                            LD      B,A            
  1700.  
  1701.   DE28    E6 01                         AND     001H           
  1702.  
  1703.   DE2A    3C                            INC     A              
  1704.  
  1705.   DE2B    32 F3E4                       LD      (DRV12),A     ;Drive A: ... F: in Drive 1/2 
  1706.  
  1707.   DE2E    78                            LD      A,B           ;und Slot #6, #5, #4 rechnen 
  1708.  
  1709.   DE2F    E6 0E                         AND     00EH           
  1710.  
  1711. "APPLE CP/M BIOS"       MACRO-80 3.4    01-Dec-80       PAGE    1-15
  1712.  
  1713.  
  1714.  
  1715.  
  1716.  
  1717.   DE31    87                            ADD     A,A            
  1718.  
  1719.   DE32    87                            ADD     A,A            
  1720.  
  1721.   DE33    87                            ADD     A,A            
  1722.  
  1723.   DE34    2F                            CPL                    
  1724.  
  1725.   DE35    C6 61                         ADD     A,061H         
  1726.  
  1727.   DE37    32 F3E6                       LD      (DSKSLT),A      
  1728.  
  1729.   DE3A    3A DEA8                       LD      A,(IOTRK)      
  1730.  
  1731.   DE3D    6F                            LD      L,A            
  1732.  
  1733.   DE3E    61                            LD      H,C            
  1734.  
  1735.   DE3F    22 F3E0                       LD      (PHTS),HL     
  1736.  
  1737.   DE42    3A DEB3                       LD      A,(RSFLAG)    ;Read n|tig ?  
  1738.  
  1739.   DE45    B7                            OR      A              
  1740.  
  1741.   DE46    C4 DE7A                       CALL    NZ,REDHST       
  1742.  
  1743.   DE49    AF                            XOR     A              
  1744.  
  1745.   DE4A    32 DEB0                       LD      (HOSTWR),A    ;kein Write n|tig  
  1746.  
  1747.                                 ;
  1748.  
  1749.                                 ;       Buffer kopieren
  1750.  
  1751.                                 ;
  1752.  
  1753.   DE4D    7B                    DMATCH: LD      A,E            
  1754.  
  1755.   DE4E    21 F800                       LD      HL,0F800H     ;0F800H = BUF1 
  1756.  
  1757.   DE51    1F                            RRA                   ;erste oder zweite H{lfte ? 
  1758.  
  1759.   DE52    CB 1D                         RR      L             ;HL = 0F800H oder 0F880H 
  1760.  
  1761.   DE54    ED 5B DEB8                    LD      DE,(IOBUF)     
  1762.  
  1763.   DE58    01 0080                       LD      BC,00080H     ;DMA - Buffer L{nge 
  1764.  
  1765.   DE5B    3A DEB1                       LD      A,(READOP)      
  1766.  
  1767.   DE5E    B7                            OR      A              
  1768.  
  1769.   DE5F    20 05                         JR      NZ,RWMOVE     ;welche Richtung ?  
  1770.  
  1771.   DE61    3C                            INC     A             ; = 1 
  1772.  
  1773.   DE62    32 DEB0                       LD      (HOSTWR),A      
  1774.  
  1775.   DE65    EB                            EX      DE,HL         ;tausche Ziel und Quelle 
  1776.  
  1777.   DE66    ED B0                 RWMOVE: LDIR                  ;Buffer kopieren 
  1778.  
  1779.   DE68    3A DEB2                       LD      A,(WRTYPE)      
  1780.  
  1781.   DE6B    1F                            RRA                    
  1782.  
  1783.   DE6C    3E 00                         LD      A,000H         
  1784.  
  1785.   DE6E    D0                            RET     NC             
  1786.  
  1787.   DE6F    CD DE73                       CALL    WRTHST        ;Directory Write  
  1788.  
  1789.   DE72    C9                            RET                    
  1790.  
  1791.                                 ;
  1792.  
  1793.                                 ;       Read / Write tats{chlich ausf}hren
  1794.  
  1795.                                 ;
  1796.  
  1797.   DE73    AF                    WRTHST: XOR     A              
  1798.  
  1799.   DE74    32 DEB0                       LD      (HOSTWR),A      
  1800.  
  1801.   DE77    3E 02                         LD      A,002H         
  1802.  
  1803.   DE79    21                            DEFB    021H          ;(LD HL,...)
  1804.  
  1805.   DE7A    3E 01                 REDHST: LD      A,001H      
  1806.  
  1807.   DE7C    32 F3EB                       LD      (RDWR),A      
  1808.  
  1809.   DE7F    21 0E03                       LD      HL,00E03H     ;$0E03 = 6502 Disk Read/Write 
  1810.  
  1811.   DE82    CD DB3B                       CALL    C6502          
  1812.  
  1813.   DE85    3A F3EA                       LD      A,(DERR)      
  1814.  
  1815.   DE88    B7                            OR      A              
  1816.  
  1817.   DE89    C8                            RET     Z             ;Z = kein Fehler 
  1818.  
  1819.   DE8A    D1                            POP     DE             
  1820.  
  1821.   DE8B    FE 10                         CP      010H          ;Write Protect Error ? 
  1822.  
  1823.   DE8D    C0                            RET     NZ             
  1824.  
  1825.   DE8E    2A CC0D                       LD      HL,(BDERR)    ;ja, dann Sprung CCP Boot 
  1826.  
  1827.   DE91    E9                            JP      (HL)           
  1828.  
  1829. "APPLE CP/M BIOS"       MACRO-80 3.4    01-Dec-80       PAGE    1-16
  1830.  
  1831.  
  1832.  
  1833.  
  1834.  
  1835.                                 ;
  1836.  
  1837.                                 ;       Sector Interleave Tabelle
  1838.  
  1839.                                 ;       Interleave geht }ber zwei Tabellen !
  1840.  
  1841.                                 ;
  1842.  
  1843.   DE92    00 09 03 0C           INTTAB: DEFB    00H,09H,03H,0CH           
  1844.  
  1845.   DE96    06 0F 01 0A                   DEFB    06H,0FH,01H,0AH           
  1846.  
  1847.   DE9A    04 0D 07 08                   DEFB    04H,0DH,07H,08H           
  1848.  
  1849.   DE9E    02 0B 05 0E                   DEFB    02H,0BH,05H,0EH
  1850.  
  1851.                                 ;           
  1852.  
  1853.   DEA2    FF                    CONFLG: DEFB    0FFH          ;$00 f}r UC1:, $FF f}r TTY:,CRT:
  1854.  
  1855.   DEA3    00                    CNTFLG: DEFB    000H          ;$00 normal,$01,$02 noch 1,2 Zch
  1856.  
  1857.   DEA4    00                    LDINFL: DEFB    000H          ;$00 normal, $80 Lead-In
  1858.  
  1859.   DEA5    A7                    SCRCUR: DEFB    0A7H          ;Cursor 
  1860.  
  1861.   DEA6    DE                            DEFB    0DEH          ; 
  1862.  
  1863.   DEA7    00                    SCRZCH: DEFB    000H          ;Zwischenspeicher Zeichen 
  1864.  
  1865.   DEA8    0A                    IOTRK:  DEFB    00AH          ;Track 
  1866.  
  1867.   DEA9    01                    IOSEC:  DEFB    001H          ;Sector zu 128 Bytes ! 
  1868.  
  1869.   DEAA    01                    CURY:   DEFB    001H          ;Cursor Y 
  1870.  
  1871.   DEAB    3E                    CURX:   DEFB    03EH          ;Cursor X 
  1872.  
  1873.   DEAC    00                    OLDDRV: DEFB    000H          ;old Drive Nummer 
  1874.  
  1875.   DEAD    00                    NEWDRV: DEFB    000H          ;new Drive Nummer 
  1876.  
  1877.   DEAE    00                    HSTDSK: DEFB    000H          ;Host Disk number 
  1878.  
  1879.   DEAF    01                    HSTACT: DEFB    001H          ;Host aktiv Flag
  1880.  
  1881.   DEB0    00                    HOSTWR: DEFB    000H          ;Host written Flag 
  1882.  
  1883.   DEB1    02                    READOP: DEFB    002H          ;2 bei Read Operation   
  1884.  
  1885.   DEB2    02                    WRTYPE: DEFB    002H          ;Type Write Operation 0,1,2 
  1886.  
  1887.   DEB3    02                    RSFLAG: DEFB    002H          ;Read Sector Flag  
  1888.  
  1889.   DEB4    00                    UNACNT: DEFB    000H          ;unallocated Sector count   
  1890.  
  1891.   DEB5    00                    UNADSK: DEFB    000H          ;letzte unalloc. Disk 
  1892.  
  1893.   DEB6    0A                    UNATRK: DEFB    00AH          ;letzter unalloc. Track 
  1894.  
  1895.   DEB7    14                    UNASEC: DEFB    014H          ;letzter unalloc. Sector 
  1896.  
  1897.   DEB8    0080                  IOBUF:  DW      0080H         ;Buffer f}r Disk
  1898.  
  1899.                                 ;
  1900.  
  1901.                                 ;       Buffer f}r BDOS
  1902.  
  1903.                                 ;           
  1904.  
  1905.   DEBA                          DIRBUF: DS 128                ;Directory Buffer       
  1906.  
  1907.                                 ;    
  1908.  
  1909.   DF3A                          ALV0:   DS 16                 ;Allocation Vector, Disk Belegung
  1910.  
  1911.   DF4A                          ALV1:   DS 16           
  1912.  
  1913.   DF5A                          ALV2:   DS 16           
  1914.  
  1915.   DF6A                          ALV3:   DS 16           
  1916.  
  1917.   DF7A                          ALV4:   DS 16           
  1918.  
  1919.   DF8A                          ALV5:   DS 16           
  1920.  
  1921.   DF9A                          CSV0:   DS 12                 ;Check Vector, Test Diskettenwechs. 
  1922.  
  1923.   DFA6                          CSV1:   DS 12           
  1924.  
  1925.   DFB2                          CSV2:   DS 12           
  1926.  
  1927.   DFBE                          CSV3:   DS 12          
  1928.  
  1929.   DFCA                          CSV4:   DS 12          
  1930.  
  1931.   DFD6                          CSV5:   DS 12
  1932.  
  1933.                                 ;
  1934.  
  1935.                                         IF (MSIZE EQ 56)
  1936.  
  1937.                                 ;  
  1938.  
  1939.                                         ORG START+05E8H
  1940.  
  1941.                                 ; 
  1942.  
  1943.   DFE8    CD DB3B               PATCH1: CALL    C6502         ;Z{hler f}r CCP-Eingabe Buffer 
  1944.  
  1945.   DFEB    AF                            XOR     A             ;wird auf Null gesetzt 
  1946.  
  1947. "APPLE CP/M BIOS"       MACRO-80 3.4    01-Dec-80       PAGE    1-17
  1948.  
  1949.  
  1950.  
  1951.  
  1952.  
  1953.   DFEC    32 C407                       LD      (BUFCNT),A      
  1954.  
  1955.   DFEF    C9                            RET                    
  1956.  
  1957.                                 ;
  1958.  
  1959.   DFF0    3A DEA9               PATCH2: LD      A,(IOSEC)   
  1960.  
  1961.   DFF3    B7                            OR      A             ;Carry = 0    
  1962.  
  1963.   DFF4    C9                            RET                    
  1964.  
  1965.                                 ;
  1966.  
  1967.                                 ;       Vektoren f}r NMI, RESET, INTERRUPT 6502
  1968.  
  1969.                                 ;       bei Language Card Adressen $FFFA-$FFFF 
  1970.  
  1971.                                 ;
  1972.  
  1973.                                         ORG START+05FAH
  1974.  
  1975.                                 ;
  1976.  
  1977.   DFFA    03C0                          DEFW    Z80ST      
  1978.  
  1979.   DFFC    03C0                          DEFW    Z80ST          
  1980.  
  1981.   DFFE    03C0                          DEFW    Z80ST          
  1982.  
  1983.                                 ;
  1984.  
  1985.                                         ELSE
  1986.  
  1987.                                 ;
  1988.  
  1989.                                         ORG START+05FF0H
  1990.  
  1991.                                 ;
  1992.  
  1993.                                 PATCH2: LD      A,(IOSEC)
  1994.  
  1995.                                         OR      A             ;Carry = 0
  1996.  
  1997.                                         RET
  1998.  
  1999.                                 ;
  2000.  
  2001.                                 PATCH1: CALL    C6502
  2002.  
  2003.                                         XOR     A
  2004.  
  2005.                                         LD      (BUFCNT),A    ;Z{hler CCP-Eingabe-Buffer
  2006.  
  2007.                                         RET                   ;auf Null setzen
  2008.  
  2009.                                 ;
  2010.  
  2011.                                         ENDIF
  2012.  
  2013.                                         PAGE
  2014.  
  2015. "APPLE CP/M BIOS"       MACRO-80 3.4    01-Dec-80       PAGE    1-18
  2016.  
  2017.  
  2018.  
  2019.  
  2020.  
  2021.                                 
  2022.  
  2023.                                 ;       
  2024.  
  2025.                                 ;       Startup - Routine
  2026.  
  2027.                                 ;       System wird je nach den best}ckten Slots ver{ndert
  2028.  
  2029.                                 ;
  2030.  
  2031.                                         ORG     START+04A8H 
  2032.  
  2033.                                 ;
  2034.  
  2035.   DEA8    31 0100               STRTUP: LD      SP,00100H      
  2036.  
  2037.   DEAB    3E C9                         LD      A,0C9H        ;RET
  2038.  
  2039.   DEAD    32 DA00                       LD      (START),A      
  2040.  
  2041.   DEB0    3E 95                         LD      A,095H        ;LST=LPT,PUN=PTP,RDR=PTR,CON=CRT   
  2042.  
  2043.   DEB2    32 0003                       LD      (IOBYTE),A      
  2044.  
  2045.   DEB5    2A F3DE                       LD      HL,(0F3DEH)   ;Z80 Switch kopieren
  2046.  
  2047.   DEB8    22 DB3F                       LD      (C6502+4),HL     
  2048.  
  2049.   DEBB    AF                            XOR     A              
  2050.  
  2051.   DEBC    32 0004                       LD      (CDISK),A     ;current Disk = A:
  2052.  
  2053.                                 ;
  2054.  
  2055.   DEBF    3A F3BB                       LD      A,(SLTTAB+2)  ;Slot 3 }berpr}fen  
  2056.  
  2057.   DEC2    FE 05                         CP      005H          ; <5 ?    3=Com.Card, 4=Ser.Card 
  2058.  
  2059.   DEC4    30 1F                         JR      NC,SLOT1       
  2060.  
  2061.   DEC6    D6 03                         SUB     003H          ; >=3 ?    
  2062.  
  2063.   DEC8    38 1B                         JR      C,SLOT1        
  2064.  
  2065.   DECA    20 06                         JR      NZ,SLOT3       
  2066.  
  2067.   DECC    21 1FB0                       LD      HL,01FB0H      ;Patch LD A,(E0B0H);RRA
  2068.  
  2069.   DECF    22 DB0E                       LD      (KEYBST+2),HL  ;fuer Comcard   
  2070.  
  2071.   DED2    F5                    SLOT3:  PUSH    AF             
  2072.  
  2073.   DED3    CD DF59                       CALL    WRPAT          
  2074.  
  2075.   DED6    F1                            POP     AF             
  2076.  
  2077.   DED7    22 DC42                       LD      (COEXT+4),HL     
  2078.  
  2079.   DEDA    CD DF54                       CALL    RDPAT          
  2080.  
  2081.   DEDD    22 DB2D                       LD      (CIEXT+4),HL     
  2082.  
  2083.   DEE0    3E 03                         LD      A,003H         
  2084.  
  2085.   DEE2    32 DAFD                       LD      (DIRP+1),A     ;Directory Breite  
  2086.  
  2087.                                 ;
  2088.  
  2089.   DEE5    3A F3B9               SLOT1:  LD      A,(SLTTAB)     ;Slot 1 }berpr}fen 
  2090.  
  2091.   DEE8    D6 03                         SUB     003H           ;3=Com.Card, 4=Ser.Card, 5=Par.
  2092.  
  2093.   DEEA    38 08                         JR      C,SLOT2        
  2094.  
  2095.   DEEC    CD DF59                       CALL    WRPAT          
  2096.  
  2097.   DEEF    22 DD2F                       LD      (LSTOUT+4),HL     
  2098.  
  2099.   DEF2    1E 80                         LD      E,080H         ; ?????
  2100.  
  2101.                                 ;
  2102.  
  2103.   DEF4    3A F3BA               SLOT2:  LD      A,(SLTTAB+1)   ;Slot 2 }berpr}fen  
  2104.  
  2105.   DEF7    D6 03                         SUB     003H           ;3=Com.Card, 4=Ser.Card, 5=Par. 
  2106.  
  2107.   DEF9    38 14                         JR      C,NOINP        ; >=3 ?
  2108.  
  2109.   DEFB    F5                            PUSH    AF             
  2110.  
  2111.   DEFC    CD DF59                       CALL    WRPAT          
  2112.  
  2113.   DEFF    22 DD43                       LD      (PUNOUT+4),HL     
  2114.  
  2115.   DF02    F1                            POP     AF             
  2116.  
  2117.   DF03    FE 02                         CP      002H           ;bei Parallel Card kein Input !      
  2118.  
  2119.   DF05    30 08                         JR      NC,NOINP       
  2120.  
  2121.   DF07    CD DF54                       CALL    RDPAT          
  2122.  
  2123.   DF0A    22 DD49                       LD      (READIN+4),HL     
  2124.  
  2125.   DF0D    18 0B                         JR      KOPVEC          
  2126.  
  2127.                                 ;
  2128.  
  2129.   DF0F    21 1A3E               NOINP:  LD      HL,01A3EH      ;LD A,01EH  Ctrl-Z
  2130.  
  2131. "APPLE CP/M BIOS"       MACRO-80 3.4    01-Dec-80       PAGE    1-19
  2132.  
  2133.  
  2134.  
  2135.  
  2136.  
  2137.   DF12    22 DD48                       LD      (READIN+3),HL     
  2138.  
  2139.   DF15    3E C9                         LD      A,0C9H         ;RET
  2140.  
  2141.   DF17    32 DD4A                       LD      (READIN+5),A      
  2142.  
  2143.                                 ;
  2144.  
  2145.   DF1A    3A F381               KOPVEC: LD      A,(VECCOS+1)   ;wenn Vektoren noch nicht da      
  2146.  
  2147.   DF1D    B7                            OR      A              ;sind, kopieren, sonst Start-
  2148.  
  2149.   DF1E    20 0B                         JR      NZ,STARTM      ;Meldung 
  2150.  
  2151.   DF20    21 DFAE                       LD      HL,VECTOR       
  2152.  
  2153.   DF23    11 F380                       LD      DE,VECCOS      
  2154.  
  2155.   DF26    01 0016                       LD      BC,00016H      
  2156.  
  2157.   DF29    ED B0                         LDIR                  ;Vektoren kopieren
  2158.  
  2159.                                 ; 
  2160.  
  2161.   DF2B    CD DAA2               STARTM: CALL    INICRD          
  2162.  
  2163.   DF2E    3A F398                       LD      A,(SFLDIN+1)   ;Clear Screen   
  2164.  
  2165.   DF31    CD DF64                       CALL    OUTP          
  2166.  
  2167.   DF34    3A F39B                       LD      A,(SFLDIN+4)   ;Set Normal   
  2168.  
  2169.   DF37    3A DF64                       LD      A,(OUTP)       ;gepacht, war wohl CALL OUTP
  2170.  
  2171.   DF3A    21 DF73                       LD      HL,MSG       
  2172.  
  2173.   DF3D    7E                    LOOP:   LD      A,(HL)         ;Start-Meldung ausgeben
  2174.  
  2175.   DF3E    B7                            OR      A              
  2176.  
  2177.   DF3F    CA DADB                       JP      Z,WBOOT1        
  2178.  
  2179.   DF42    E5                            PUSH    HL             
  2180.  
  2181.   DF43    CD DB42                       CALL    CO          
  2182.  
  2183.   DF46    E1                            POP     HL             
  2184.  
  2185.   DF47    23                            INC     HL             
  2186.  
  2187.   DF48    18 F3                         JR      LOOP          
  2188.  
  2189.                                 ;
  2190.  
  2191.                                 ;
  2192.  
  2193.   DF4A    DCDF                  WRVECT: DEFW    WRCOM          
  2194.  
  2195.   DF4C    DD04                          DEFW    WRSER          
  2196.  
  2197.   DF4E    DD31                          DEFW    WPRINT          
  2198.  
  2199.   DF50    DD12                  RDVECT: DEFW    RDCOM          
  2200.  
  2201.   DF52    DD1C                          DEFW    RDSER          
  2202.  
  2203.                                 ;
  2204.  
  2205.   DF54    21 DF50               RDPAT:  LD      HL,RDVECT       
  2206.  
  2207.   DF57    18 03                         JR      PAT          
  2208.  
  2209.                                 ;
  2210.  
  2211.   DF59    21 DF4A               WRPAT:  LD      HL,WRVECT       
  2212.  
  2213.   DF5C    87                    PAT:    ADD     A,A            
  2214.  
  2215.   DF5D    85                            ADD     A,L            
  2216.  
  2217.   DF5E    6F                            LD      L,A            
  2218.  
  2219.   DF5F    7E                            LD      A,(HL)         
  2220.  
  2221.   DF60    2C                            INC     L              
  2222.  
  2223.   DF61    66                            LD      H,(HL)         
  2224.  
  2225.   DF62    6F                            LD      L,A            
  2226.  
  2227.   DF63    C9                            RET                    
  2228.  
  2229.                                 ;
  2230.  
  2231.   DF64    B7                    OUTP:   OR      A              
  2232.  
  2233.   DF65    F2 DF70                       JP      P,OUTP1        ;Lead In noetig
  2234.  
  2235.   DF68    F5                            PUSH    AF             
  2236.  
  2237.   DF69    3A F397                       LD      A,(SFLDIN)      
  2238.  
  2239.   DF6C    CD DB42                       CALL    CO          
  2240.  
  2241.   DF6F    F1                            POP     AF             
  2242.  
  2243.   DF70    C3 DB42               OUTP1:  JP      CO          
  2244.  
  2245.                                 ;
  2246.  
  2247.   DF73    0D 0A 0D 0A           MSG:    DEFB    00DH,00AH,00DH,00AH,00DH,00AH           
  2248.  
  2249. "APPLE CP/M BIOS"       MACRO-80 3.4    01-Dec-80       PAGE    1-20
  2250.  
  2251.  
  2252.  
  2253.  
  2254.  
  2255.   DF77    0D 0A                 
  2256.  
  2257.   DF79    41 70 70 6C                   DEFB    'Apple ][ CP/M'          
  2258.  
  2259.   DF7D    65 20 5D 5B           
  2260.  
  2261.   DF81    20 43 50 2F           
  2262.  
  2263.   DF85    4D                    
  2264.  
  2265.   DF86    0D 0A                         DEFB    00DH,00AH
  2266.  
  2267.   DF88    35 36                         DEFB    MSIZE/10+'0',MSIZE MOD 10+'0'
  2268.  
  2269.                                                                       ;initial 44             
  2270.  
  2271.   DF8A    4B 20 56 65                   DEFB    'K Ver. 2.20B'          
  2272.  
  2273.   DF8E    72 2E 20 32           
  2274.  
  2275.   DF92    2E 32 30 42           
  2276.  
  2277.   DF96    0D 0A                         DEFB    00DH,00AH           
  2278.  
  2279.   DF98    28 43 29 20                   DEFB    '(C) 1980 Microsoft'           
  2280.  
  2281.   DF9C    31 39 38 30           
  2282.  
  2283.   DFA0    20 4D 69 63           
  2284.  
  2285.   DFA4    72 6F 73 6F           
  2286.  
  2287.   DFA8    66 74                 
  2288.  
  2289.   DFAA    0D 0A 0A                      DEFB    00DH,00AH,00AH           
  2290.  
  2291.   DFAD    00                            DEFB    000H           
  2292.  
  2293.                                 ;
  2294.  
  2295.   DFAE    DB0C                  VECTOR: DEFW    KEYBST          
  2296.  
  2297.   DFB0    DB12                          DEFW    CONIN          
  2298.  
  2299.   DFB2    DB12                          DEFW    CONIN          
  2300.  
  2301.   DFB4    DC3E                          DEFW    COEXT          
  2302.  
  2303.   DFB6    DC3E                          DEFW    COEXT          
  2304.  
  2305.   DFB8    DD45                          DEFW    READIN          
  2306.  
  2307.   DFBA    DD45                          DEFW    READIN          
  2308.  
  2309.   DFBC    DD3F                          DEFW    PUNOUT          
  2310.  
  2311.   DFBE    DD3F                          DEFW    PUNOUT          
  2312.  
  2313.   DFC0    DD2B                          DEFW    LSTOUT          
  2314.  
  2315.   DFC2    DD2B                          DEFW    LSTOUT          
  2316.  
  2317.   DFC4    DB42                          DEFW    CO          
  2318.  
  2319.                                         PAGE
  2320.  
  2321. "APPLE CP/M BIOS"       MACRO-80 3.4    01-Dec-80       PAGE    1-21
  2322.  
  2323.  
  2324.  
  2325.  
  2326.  
  2327.                                 
  2328.  
  2329.                                 ;
  2330.  
  2331.                                 ;
  2332.  
  2333.                                 
  2334.  
  2335.                                 ;       I/O-Treiber Routinen
  2336.  
  2337.                                 ;
  2338.  
  2339.                                         ORG 0F200H
  2340.  
  2341.                                 ;
  2342.  
  2343.   F200                                  DS 128                ;reserviert f}r LST-Device
  2344.  
  2345.   F280                                  DS 128                ;reserviert f}r PUN/RDR-Device
  2346.  
  2347.   F300                                  DS 74                 ;reserviert f}r TTY-Device
  2348.  
  2349.                                 ;
  2350.  
  2351.   F34A    3A F3BB               TTYCS:  LD A,(SLTTAB+2)       ;0F3BBH = Slottabelle Slot 3
  2352.  
  2353.   F34D    FE 03                         CP 03H                ;ist Com. Card ?
  2354.  
  2355.   F34F    C2 DB0C                       JP NZ,KEYBST
  2356.  
  2357.   F352    3A E0BE                       LD A,(0E0BEH)         ;0E0BEH Status Com. Card
  2358.  
  2359.   F355    1F                            RRA
  2360.  
  2361.   F356    9F                            SBC A,A
  2362.  
  2363.   F357    C9                            RET
  2364.  
  2365.                                 ;
  2366.  
  2367.                                 ;
  2368.  
  2369.   F358    CD DB29               TTYCI:  CALL CIEXT
  2370.  
  2371.   F35B    E6 7F                         AND 07FH
  2372.  
  2373.   F35D    C9                            RET
  2374.  
  2375.                                 ;
  2376.  
  2377.                                 ;
  2378.  
  2379.   F35E    3A F3BB               TTYCO:  LD A,(SLTTAB+2)       ;Slottabelle Slot 2
  2380.  
  2381.   F361    FE 03                         CP 03H                ;ist Com. Card ?
  2382.  
  2383.   F363    C2 DC3E                       JP NZ,COEXT
  2384.  
  2385.   F366    3A E0BE               WART:   LD A,(0E0BEH)         ;Status Com. Card
  2386.  
  2387.   F369    E6 02                         AND 02H
  2388.  
  2389.   F36B    28 F9                         JR Z,WART             ;warte auf UART
  2390.  
  2391.   F36D    79                            LD A,C
  2392.  
  2393.   F36E    32 F045                       LD (A$ACC),A
  2394.  
  2395.   F371    21 037C                       LD HL,037CH           ;6502 Routine -> 0F37CH Z80
  2396.  
  2397.   F374    22 F3D0                       LD (A$VEC),HL
  2398.  
  2399.   F377    2A F3DE                       LD HL,(0F3DEH)        ;Z80SW 
  2400.  
  2401.   F37A    77                            LD (HL),A             ;6502 Routine aufrufen
  2402.  
  2403.   F37B    C9                            RET
  2404.  
  2405.                                 ;
  2406.  
  2407.   F37C    8D BF C0                      DEFB 08DH,0BFH,0C0H   ;STA $C0BF
  2408.  
  2409.   F37F    60                            DEFB 060H             ;RET
  2410.  
  2411.                                 ;
  2412.  
  2413.                                 ;       I/O Vektoren
  2414.  
  2415.                                 ;
  2416.  
  2417.   F380    F34A                  VECCOS: DW TTYCS              ;Status
  2418.  
  2419.   F382    F358                  VECCI1: DW TTYCI              ;TTY:
  2420.  
  2421.   F384    DB29                  VECCI2: DW CIEXT              ;UC1:
  2422.  
  2423.   F386    F35E                  VECCO1: DW TTYCO              ;TTY:
  2424.  
  2425.   F388    DC3E                  VECCO2: DW COEXT              ;UC1:
  2426.  
  2427.   F38A    DD45                  VECRE1: DW READIN             ;PTR:
  2428.  
  2429.   F38C    DD45                  VECRE2: DW READIN             ;UR1:,UR2:
  2430.  
  2431.   F38E    DD3F                  VECPU1: DW PUNOUT             ;PTP:
  2432.  
  2433.   F390    DD3F                  VECPU2: DW PUNOUT             ;UP1:,UP2:
  2434.  
  2435.   F392    DD2B                  VECLI1: DW LSTOUT             ;LPT:
  2436.  
  2437. "APPLE CP/M BIOS"       MACRO-80 3.4    01-Dec-80       PAGE    1-22
  2438.  
  2439.  
  2440.  
  2441.  
  2442.  
  2443.   F394    DD2B                  VECLI2: DW LSTOUT             ;UL1:
  2444.  
  2445.                                 ;
  2446.  
  2447.                                 ;       Character Table
  2448.  
  2449.                                 ;       Software Screen Functions
  2450.  
  2451.                                 ;
  2452.  
  2453.   F396    A0                    SXYOFF: DEFB 0A0H             ;Offset 020H, erst x, dann y
  2454.  
  2455.   F397    00                    SFLDIN: DEFB 000H             ;kein Lead-In-Zeichen
  2456.  
  2457.   F398    0C                            DEFB 00CH             ;Ctrl-L Clear Screen
  2458.  
  2459.   F399    0B                            DEFB 00BH             ;Ctrl-K Clear to End of Page
  2460.  
  2461.   F39A    1D                            DEFB 01DH             ;Ctrl-] Clear to End of Line
  2462.  
  2463.   F39B    0E                            DEFB 00EH             ;Ctrl-N Set Normal
  2464.  
  2465.   F39C    0F                            DEFB 00FH             ;Ctrl-O Set Inverse ( High-Lite )
  2466.  
  2467.   F39D    19                            DEFB 019H             ;Ctrl-Y Home Cursor
  2468.  
  2469.   F39E    1E                            DEFB 01EH             ;Ctrl-~ Adress Cursor
  2470.  
  2471.   F39F    1F                            DEFB 01FH             ;US     Move Cursor Up one line
  2472.  
  2473.   F3A0    1C                            DEFB 01CH             ;Ctrl-\ Cursor Move Forward nond.
  2474.  
  2475.                                 ;
  2476.  
  2477.                                 ;       Hardware Screen Functions
  2478.  
  2479.                                 ;
  2480.  
  2481.   F3A1    A0                    HXYOFF: DEFB 0A0H             ;Offset 020H, erst x , dann y
  2482.  
  2483.   F3A2    00                    HFLDIN: DEFB 000H             ;kein Lead-In-Zeichen
  2484.  
  2485.   F3A3    0C                            DEFB 00CH             ;Ctrl-L
  2486.  
  2487.   F3A4    0B                            DEFB 00BH             ;Ctrl-K
  2488.  
  2489.   F3A5    1D                            DEFB 01DH             ;Ctrl-]
  2490.  
  2491.   F3A6    0E                            DEFB 00EH             ;Ctrl-N
  2492.  
  2493.   F3A7    0F                            DEFB 00FH             ;Ctrl-O
  2494.  
  2495.   F3A8    19                            DEFB 019H             ;Ctrl-Y
  2496.  
  2497.   F3A9    1E                            DEFB 01EH             ;Ctrl-~
  2498.  
  2499.   F3AA    1F                            DEFB 01FH             ;US
  2500.  
  2501.   F3AB    1C                            DEFB 01CH             ;Ctrl-\         
  2502.  
  2503.                                 ;
  2504.  
  2505.                                 ;       Character Umcodier-Tabelle
  2506.  
  2507.                                 ;
  2508.  
  2509.   F3AC    00 7F                 CHRRED: DEFB 000H,07FH        ;NUL -> DEL
  2510.  
  2511.   F3AE    15 09                         DEFB 015H,009H        ;NAK -> Ctrl-I
  2512.  
  2513.   F3B0    FF FF                         DEFB 0FFH,0FFH        ;Tabellenende High-Bit gesetzt
  2514.  
  2515.   F3B2    FF FF                         DEFB 0FFH,0FFH
  2516.  
  2517.   F3B4    FF FF                         DEFB 0FFH,0FFH
  2518.  
  2519.   F3B6    FF FF                         DEFB 0FFH,0FFH        ;6 Umcodierungen          
  2520.  
  2521.                                 ;
  2522.  
  2523.   F3B8    02                    DSKCNT: DEFB 002H             ;Zahl der vorhandenen Laufwerke
  2524.  
  2525.                                 ;
  2526.  
  2527.                                 ;       Slotbelegungstabelle ( siehe Softcard Dokument. )
  2528.  
  2529.                                 ;
  2530.  
  2531.   F3B9    05                    SLTTAB: DEFB 005H             ;Slot 1 Parallel Printer Interf.
  2532.  
  2533.   F3BA    03                            DEFB 003H             ;Slot 2 Communications Card
  2534.  
  2535.   F3BB    04                            DEFB 004H             ;Slot 3 80 Zeichen-Karte (Serial)
  2536.  
  2537.   F3BC    00                            DEFB 000H             ;Slot 4 Z80-Card (nicht erkannt)
  2538.  
  2539.   F3BD    01                            DEFB 001H             ;Slot 5 unbekannte Karte
  2540.  
  2541.   F3BE    02                            DEFB 002H             ;Slot 6 Apple Disk II Contr.
  2542.  
  2543.   F3BF    00                            DEFB 000H             ;Slot 7 keine Karte erkannt 
  2544.  
  2545.                                 ;
  2546.  
  2547.                                 ;                              
  2548.  
  2549.                                         END                    
  2550.  
  2551. "APPLE CP/M BIOS"       MACRO-80 3.4    01-Dec-80       PAGE    S
  2552.  
  2553.  
  2554.  
  2555.  
  2556.  
  2557. Macros:
  2558.  
  2559.  
  2560.  
  2561. Symbols:
  2562.  
  2563. A$ACC   F045    A$VEC   F3D0    A$XREG  F046    A$YREG  F047 
  2564.  
  2565. ALLOC   DDEC    ALV0    DF3A    ALV1    DF4A    ALV2    DF5A 
  2566.  
  2567. ALV3    DF6A    ALV4    DF7A    ALV5    DF8A    APPKBD  E000 
  2568.  
  2569. APPKST  E010    APPSCR  DC44    BASCAL  DCAA    BASL    F028 
  2570.  
  2571. BDERR   CC0D    BDOS    0005    BDOSST  0006    BDST    CC06 
  2572.  
  2573. BIAS    9000    BIOS    DA00    BOOT    0000    BOOTST  0001 
  2574.  
  2575. BUFCNT  C407    BYTE    F678    C6502   DB3B    CBASE   C400 
  2576.  
  2577. CC6502  DD0F    CCPDIR  C8B2    CDISK   0004    CH      F024 
  2578.  
  2579. CHKUNA  DDBD    CHRRED  F3AC    CI1     DB5E    CIEXT   DB29 
  2580.  
  2581. CLRROM  EFFF    CMWAIT  DCE2    CNTFLG  DEA3    CO      DB42 
  2582.  
  2583. COEXT   DC3E    CON     DB97    CONFLG  DEA2    CONIN   DB12 
  2584.  
  2585. CONINP  DB50    CONOUT  DB43    CONST   DB08    COUT    DBDD 
  2586.  
  2587. CSV0    DF9A    CSV1    DFA6    CSV2    DFB2    CSV3    DFBE 
  2588.  
  2589. CSV4    DFCA    CSV5    DFD6    CURX    DEAB    CURY    DEAA 
  2590.  
  2591. DERR    F3EA    DIRBUF  DEBA    DIRP    DAFC    DMATCH  DE4D 
  2592.  
  2593. DPB     DA93    DPE0    DA33    DRV12   F3E4    DSKCNT  F3B8 
  2594.  
  2595. DSKERR  DD84    DSKSLT  F3E6    ENDKEY  DB27    FILHST  DE21 
  2596.  
  2597. FINISH  DC2D    FUN1    DCBA    FUN10   DCBF    FUN2    DCB1 
  2598.  
  2599. FUN3    DCB4    FUN4    DC96    FUN5    DC99    FUN6    DCA4 
  2600.  
  2601. FUN7    DC9E    FUN8    DCB7    FUN9    DCA0    FUNTAB  DCD5 
  2602.  
  2603. HFLDIN  F3A2    HOME    DD4B    HOSTWR  DEB0    HSTACT  DEAF 
  2604.  
  2605. HSTDSK  DEAE    HXYOFF  F3A1    INICRD  DAA2    INTTAB  DE92 
  2606.  
  2607. INVFLG  F032    IOBUF   DEB8    IOBYTE  0003    IOSEC   DEA9 
  2608.  
  2609. IOTRK   DEA8    JMPHL   DB65    JPHL1   DC3D    KEYBIN  DB2F 
  2610.  
  2611. KEYBST  DB0C    KOPVEC  DF1A    LDINFL  DEA4    LIST    DB66 
  2612.  
  2613. LIST1   DB4C    LOOP    DF3D    LSTOUT  DD2B    MATCH   DC0C 
  2614.  
  2615. MSG     DF73    MSIZE   0038    NEWDRV  DEAD    NOCH1   DBB8 
  2616.  
  2617. NOCOM   DAB5    NOCR    DC84    NOFUN   DC7A    NOINP   DF0F 
  2618.  
  2619. NOLEAD  DC23    NOMTCH  DE1A    NOOVF   DDE3    NOSER   DAC1 
  2620.  
  2621. NOSWAP  DBCF    NOTAVL  DC07    NOTWR   DD54    OLDDRV  DEAC 
  2622.  
  2623. OUTP    DF64    OUTP1   DF70    PAT     DF5C    PATCH1  DFE8 
  2624.  
  2625. PATCH2  DFF0    PHTS    F3E0    PREP    DCEE    PUNCH   DB75 
  2626.  
  2627. PUNOUT  DD3F    PWAIT   DD36    RCWAIT  DD15    RDCOM   DD12 
  2628.  
  2629. RDPAT   DF54    RDSER   DD1C    RDVECT  DF50    RDWR    F3EB 
  2630.  
  2631. READ    DD93    READ1   DB62    READER  DB87    READIN  DD45 
  2632.  
  2633. READOP  DEB1    REDHST  DE7A    RET1    DD3E    RSFLAG  DEB3 
  2634.  
  2635. RWMOVE  DE66    RWOPER  DDF2    SCRCUR  DEA5    SCRFUN  DC6B 
  2636.  
  2637. SCRZCH  DEA7    SEARCH  DBF5    SELDSK  DD6D    SETDMA  DD8E 
  2638.  
  2639. SETSEC  DD89    SETTRK  DD56    SFLDIN  F397    SLOT    F6F8 
  2640.  
  2641. SLOT1   DEE5    SLOT2   DEF4    SLOT3   DED2    SLSTAT  DD60 
  2642.  
  2643. SLT1    DD63    SLT2    DD64    SLTADD  DAC5    SLTDAT  DD5B 
  2644.  
  2645. SLTTAB  F3B9    SPREP   DCEA    SRCH2   DBFA    START   DA00 
  2646.  
  2647. STARTM  DF2B    STRTUP  DEA8    SUBOF2  DBB3    SUBOFF  DBB1 
  2648.  
  2649. SXYOFF  F396    TCONT   DBE0    TESTFN  DBFF    TSTKEY  DB1B 
  2650.  
  2651. TTY     DB96    TTYCI   F358    TTYCO   F35E    TTYCS   F34A 
  2652.  
  2653. TXTSET  E051    UC      DC8E    UNACNT  DEB4    UNADSK  DEB5 
  2654.  
  2655. UNASEC  DEB7    UNATRK  DEB6    UP      DC65    VECCI1  F382 
  2656.  
  2657. VECCI2  F384    VECCO1  F386    VECCO2  F388    VECCOS  F380 
  2658.  
  2659. VECLI1  F392    VECLI2  F394    VECPU1  F38E    VECPU2  F390 
  2660.  
  2661. VECRE1  F38A    VECRE2  F38C    VECTOR  DFAE    WART    F366 
  2662.  
  2663. WBOOT   DACC    WBOOT1  DADB    WBOOTE  DA03    WEITER  DAA5 
  2664.  
  2665. WPRINT  DD31    WRCOM   DCDF    WRITE   DDA3    WRPAT   DF59 
  2666.  
  2667. WRSER   DD04    WRTHST  DE73    WRTYPE  DEB2    WRVECT  DF4A 
  2668.  
  2669. XOK     DCC9    XY      DBBD    YOK     DCD0    Z80CRD  E400 
  2670.  
  2671. "APPLE CP/M BIOS"       MACRO-80 3.4    01-Dec-80       PAGE    S-1
  2672.  
  2673.  
  2674.  
  2675.  
  2676.  
  2677. Z80ST   03C0    
  2678.  
  2679.  
  2680.  
  2681.  
  2682.  
  2683.  
  2684.  
  2685. No  Fatal error(s)
  2686.  
  2687.  
  2688.  
  2689.  
  2690.  
  2691. YOK     DCD0    Z80CRD  E400 
  2692.  
  2693. "APPLE CP/M BIOS"       MACRO-80 3.4    01-Dec-80       PAGE    S-1
  2694.  
  2695.  
  2696.  
  2697.  
  2698.  
  2699. Z80ST   03C0    
  2700.  
  2701.  
  2702.  
  2703.  
  2704.  
  2705.  
  2706. eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee